I have around 1250 maps of species distributions. Each species is a different shapefile projected on one base-map.

I can use the TomBio addon to export everything as a single map (PNG) without too much trouble, but I don't want seperate images. I want 8 small maps on a A4 format. Making this in the QGIS print composer is simple, but it takes a lot of time to produce all the maps. I was wondering if there is a faster way to automatically generate all my maps using QGIS.

So: Is there a way to use the template in my print composer (8 small maps of 8 different species on A4 format) to generate this for all of my 1250 species without having to do this all manually.

  • Have you had a look at the atlas-feature?
    – Erik
    Jan 7, 2020 at 8:44
  • Is each extent of your 1250 maps stored anywhere ?
    – Snaileater
    Jan 7, 2020 at 8:45
  • @snaileater, yes, but not as map but as shapefile. Jan 7, 2020 at 8:45
  • @Erik, i don't know of this feature. Thanks for the heads up, i will surely look at it. Jan 7, 2020 at 8:47

1 Answer 1


Use the atlas composer and the lock layers data defined override option

  1. Create a csv (or other file) listing all the maps you want to create, this will be a column labelled layerMap1, layerMap2 containing the layers for each map - this will be in the format "ANIMAL|Basemap"
  2. load the csv into qgis, then in the print composer, set the atlas coverage layer to the csv
  3. In the map item properties turn on lock layers, then in the data defined options set it to the field layerMap1
  4. when you activate atlas mode, you should now be able to export as an atlas with data defined layers
  • Thanks, i will try this asap to see if it works. Jan 7, 2020 at 9:33
  • @Anthony How do u meet Steve's expectation of 8 maps per page ?
    – Snaileater
    Jan 7, 2020 at 9:47
  • @snaileter, indeed. I tried and this is the problem i ran into. Jan 7, 2020 at 10:09
  • Try using a Print Report instead of a Print Layout. This feature is not well documented, but I think you can do multiple atlases inside the same report. Not sure if you can use that to put multiple atlases on one page, though. Use the modulus operator to filter the map extent (eg first atlas on the page is filtered by "map number" % 8 = 0, second atlas is filtered "map number" % 8 = 1 and so on).
    – csk
    Jan 7, 2020 at 19:12
  • If the print report feature doesn't work, you might need to assemble the atlas output in another program like adobe illustrator.
    – csk
    Jan 7, 2020 at 19:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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