Last Friday, we posted what I suppose we’ll call a beta version of svg_mapper, a library of Python code for drawing vector-based maps that will work in both modern and legacy browsers. It’s code I’ve been working on, off and on, for more than a year, and you can see earlier incarnations in several CIR and California Watch projects. Anthony Pesce gave a great Lightning Talk at NICAR 2012 in St. Louis a few weeks ago about a similar approach they’re using at the Los Angeles Times, which inspired me to finally get off my duff and publish some code. The open-source version of svg_mapper is more generalized than our earlier projects and is built to handle a range of mapping features. You can have one or many layers, and polygon, linestring and point layers are all supported. You also can use any projection you choose, a big advantage over many tools that allow only Google’s Spherical Mercator projection. And a big selling point for me is the ability to use arbitrary sets of spatial data, rather than just standard views like all U.S. states or all California counties. We’ve released the code as part of a sample Django project, which includes some sample data to play with. The code is designed to work with GeoDjango models, but the math inside the heart of the code, svg_map.py, will work with most any coordinates you could throw at it. The process of building a map should be easy to understand for those already familiar with GeoDjango. More on that below. Source.