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.