Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I could give a lot of examples, but imagine you have do eg a study in 10 different locations and have to generate a lot of maps with the same layout, legend. Maps can contain vector and raster data. It should be scriptable, because a large number of maps have to be made/remade in the future.

Which platform would you use?

share|improve this question
This is a comment because the solution uses deprecated software. About 8 years ago I made over 1,000 maps (of LA bus routes) automatically by means of an ArcView 3.x extension. It took about three hours to create print files for all the maps. The idea was to create a layout filled with custom template objects that were dynamically replaced by database-driven references to text, map data, locations, and map extents. The same approach would work in ArcGIS but I suspect the scripting would be a little more painful :-(. – whuber Feb 21 '11 at 16:03
Actually almost everyone I know who has used arcview 3.x at some point is still doing so. Not sure you can call it deprecated. – johanvdw Feb 21 '11 at 17:34
What about using Mapnik and Python to automate tasks? Is that useful? – user4066 Aug 28 '11 at 8:16
up vote 9 down vote accepted

I had the same problem last year : a few dozen of maps to produce within three days, same legend, but different locations.

I used this setup :

  • vector data in PostGIS
  • raster data in GeoTiff (shaded relief)
  • cartographic engine : MapServer, with PDF vector output
  • batch processing : PHP to automate MapServer, with MapScript PHP
  • finalization with Adobe illustrator and a specialized style palette.

It takes a little time to produce and fine-tune the mapfiles, but the gain in time is tremendous. I produced 45 print-quality maps within 3 days.

share|improve this answer
Nice one, I was not aware of mapserver pdf output. – johanvdw Feb 19 '11 at 11:04
I should have favorited this question (for your answer) a long time ago. It's surprisingly unlisted in the "Related Questions" list when I go to most any other question discussing batch pdf generation with open tools. I finally found it again using this with this ultra-precision search: body: "mapserver with pdf" Eureka! – elrobis Mar 8 '12 at 17:21

If you have access to ArcMap, examine the arcpy mapping module

share|improve this answer

QGIS is evolving quite rapidly, but it certainly has the core components for automated map production: its map and print composition formats are stored in XML, map composition can be done programmatically via python (e.g. this question) with PyQGIS map compositon.

share|improve this answer
QGIS now has a Mapbook plugin:… – underdark Jun 17 '11 at 7:45

I've had a really good experience using the MapBook extension, which is available in an open-source and a commercial ( version. I personally use the commercial version and, for a single user with the basic functionality it's very affordable.

share|improve this answer
Interesting, thanks, i'm looking for cartographic layout software. – Laurent Jégou Feb 20 '11 at 7:31

Just for reference: I have used R for this (too little time to investigate new procedures). It is well scriptable, but not really useful for complicated maps with eg a sophisticated legend. But since my maps only contained one variable this was no issue.

share|improve this answer
Could you please provide some examples/links? – Chad Cooper Feb 19 '11 at 17:15
I'd suggest looking at: – johanvdw Feb 21 '11 at 19:11

I've used both ESRI and open source tools for map automation.

The ESRI components are mentioned above, but if you have a lot of labeling to do the maplex extension is something that would save a lot of time. So

  • ArcMap with the maplex extension for map authoring.
  • mapbooks with arcpy.mapping to script the map output.

I have had trouble with the generation of legends with arcpy.mapping but if you have the same legend on each map, this may not be an issue. If you have access to ArcGIS Server you can publish you cartography as a map service and generate maps with the REST api, but this might be overkill.

If you don't have ESRI tools I'd use a similar setup to the mapserver stack mentioned above but using python and mapnik.

  • Postgis / spatialite / shapefiles for your vector data.
  • Qgis for any data work, and for easy mapnik previews.
  • Mapnik for cartographic rendering.
  • Mapnik's python bindings for scripting the map output (many formats avail).
  • Inkscape for any custom markers, graphics or legends.

Both postgis and mapnik require a bit more front end work to set up. Mapnik was simply the best rendering engine when I first used it, ESRI and mapserver have caught up since then.

In short, at work I'd use ESRI tools as the software provides a great interface for quick cartography, and the maplex labeling engine works very well, even if arcpy.mapping isn't quite as flexible as I'd like.

At home I'd use the open source stack because it is much more flexible and infinitely cheaper!

share|improve this answer

This is an old question, but in case somebody is still looking for a solution, check out GMT as well:

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.