About our mapsFeb182008
We’ve gotten a number of comments and questions about the maps that
appear on EveryBlock. People are wondering if we have created our
own mapping platform, and why we didn’t use the map offerings from
services like Google, Yahoo!, or Microsoft.
Yes, we created our own maps for EveryBlock. We did this because it
gave us more choices and greater flexibility than we would have had
if we had made yet another Google Maps mashup.
At EveryBlock, “place” is obviously an important concept — we’re a
news feed for your block, after all. The choice of how to display
the geospatial component of the data we compile was therefore
important, both in establishing a visual identity and in communicating
that data with maximal clarity.
With Google Maps or any other web-based mapping service, we’d be
limited to the color palette, typeface, and other design elements that
service’s designers chose. While those maps can be handsome products,
their choices aren’t our choices, and don’t mesh well with our site’s
aesthetics. Additionally, maps are fundamentally layered — eg.,
a parks layer sits on top of a streets layer, which sits on top of a
cities layer, and on down. Maps can be composed of many such layers,
up to a dozen or more. The maps from Google Maps, however, don’t
let us choose which layers we receive. They are “collapsed” down
into a single image, one that is well-designed for general purpose,
but one that includes layers we’re not interested in displaying. Map
aesthetics are no small thing. With all the Google Maps mashups out
there, we used our own platform to stand apart, for visual distinction.
We also created our own maps because we wanted to focus on visualizing
the data in our system. Google Maps is focused on finding places and
routing between them (i.e., driving directions). This influences their
choice of layers, as mentioned above. We wanted our maps to be a clean,
low-energy slate for plotting news items in their geospatial context,
their spatial relationship with each other. That’s the emphasis,
rather than wayfinding. We’ve chosen our layers to aid in this and
future visualizations — we’ve just begun to take advantage of the
platform we’ve created.
We don’t want to pick on Google Maps. It’s a phenomenal, game-changing
platform that accounts in no small way for the very existence of
EveryBlock: it was Adrian’s original mashup of Google Maps and Chicago
crime data which is the direct ancestor of this site. We believe,
however, that it’s time for developers to move beyond Google Maps,
if they’re capable of doing so from a technology perspective.
For the technology-inclined reader, here’s how we put our map platform
together. All web technologies are a “stack,” like layers in a map,
and our map stack starts at the top with OpenLayers, which
provides the click’n’drag’n’zoom interface. The next step down in the
stack is Mapnik, which renders geospatial data into graphical
images. At the bottom of the stack is our collection of geospatial
data, which includes TIGER/Line and shapefiles from various city
governments, as well as databases and tools that operate on that data,
such as PostGIS, Shapely, and OGR. Finally, the
“secret sauce” layer in the stack is TileCache, which actually
sits between OpenLayers and Mapnik. It provides caching of the map
tiles that are generated by Mapnik and served to OpenLayers. I say
“secret” because it’s transparent to both the layers it sits between,
and also because it greatly speeds up the entire stack, making
it possible to deploy and scale a large mapping application. It’s
worth mentioning that all these layers of the stack are open source
or licensed freely. If you can build and deploy a web application,
you can build and deploy a complete standalone geospatial and mapping
application. The tools and data are there for the taking.
We’re proud of our maps, and we look forward to expanding their use on
the site and developing new features for them. As always, we welcome
your feedback on ways we can improve your EveryBlock map experience.