Great open source map tools for Web developers
A rich ecosystem of free maps, free data, and free libraries give developers excellent alternatives to Google MapsFollow @peterwayner
A skilled artist can work wonders with the OpenStreetMap data. Some of my favorites come from Stamen, a general design studio that has been releasing the tiles under a Creative Commons license. The Terrain maps are nice, but the watercolor maps are eye opening. The colors run together as if they were painted by hand with a messy watercolor brush.
Most of the mapping tools are built with Web technology stacks because most people assume the maps will be consumed by mobile browsers. MapNik is written in C++ for desktop users, although it offers Python bindings that might be used in browser-based applications.
The code is essentially a big pipe for juggling geographic data and feeding it into the AGG rendering library, the "antigrain" tool that does a great job with antialiasing. The quality shows too -- MapNik maps have some of the most pleasing details I've seen. Google has been a big supporter of this project during recent Summers of Code, and I hope that continues. Desktop users need maps too.
The commerce behind the tools
All of these open source tools don't come out of nowhere. TileMill, for instance, was created by MapBox, a company that makes its money by selling downloads of the map tiles. You can fiddle with the data and make all of the pretty pictures for free, but once people look at your map tiles more than 3,000 times in a month, it's time to pay.
The higher-priced plans offer more than just endless streams of map tiles. You get analytical charts that help you understand who is looking at which corner of the globe. MapBox has a cloud-based infrastructure that can optimize your maps to make sure they work as smoothly as possible in the mobile browsers.
MapBox contributes a fair amount of open source code, including not only TileMill but also Wax, a tool that makes it a bit easier to use libraries like Modest Maps to embed MapBox tiles in your site. My favorite part of Wax is TileJSON, a basic format for wrapping up the data about the tiles.
This example at stamen.com shows the use of Stamen's Watercolor, Toner, and Terrain tiles within the same map.