I've got a shapefile with three squares in it, defining three study areas (although these could be split into three shapefiles if necessary).

Is there a way to set the map extent on Print Composer to be one of these squares? Or is it just a manual job?

2 Answers 2


You can use the Atlas generator with the squares as the coverage layer.

In Print Composer on the Atlas generation tab check the box to generate and atlas. Pick your layer from the drop down.

atlas generation

Then set up your map frame to be square (under Item Properties > Position and size)

Next check the box to allow the map frame to be controlled by the atlas and set the margin around the feature to be 0%.

map frame setup

Now, you can use the atlas to automatically create a map layout for each feature in your input shapefile.

enter image description here

Check the QGIS training manual for a more detailed tutorial on how to use the atlas - http://docs.qgis.org/2.18/en/docs/training_manual/forestry/forest_maps.html?highlight=atlas

And from the docs - http://docs.qgis.org/2.18/en/docs/user_manual/print_composer/create_output.html#generate-an-atlas


I have thought of one way to do this, if I was going to do it. Without manually adjusting each map extent.

If they were individual shapefiles, within QGIS you can right click on the shapefile layer (of one) and then choose zoom to layer.

Now when you choose the map extent in the print composer this will be automatically zoomed into the specific shapefile.

Within the print composer you can then select the layer, and go to the item properties field on the right and select to lock the layer.

When this method is repeated and by zooming onto another shapefile within QGIS and then with the map extent placed, it will keep this shapefile within the print composer unaltered. Upon locking the next this method can be repeated indefinitely.

I can't think of a better way without manually zooming into the shapefiles.

Hope this helps!

Your Answer

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

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