I have a maps where i want to show 6 different sites around europe. Instead of creating 6 different maps, i want to use the atlas generator.

I'm using QGIS 2.18.3 (Las Palmas).

I have made a coverage.shp including 6 polygons to show the extent of my different maps. Also, i set visibility presets (always showing 2 Layers: one is my backround google satellite image and one is always my vector shape). I have consulted a previous question: (QGIS Atlas generation for multiple map extents?).

The Problem I have is that i want each map to have a different scale. I added an attribute to my coverage layer with the scale of my choice (eg. 30000, 16000...etc.). In the Print composer I went to the scale of the Map, data defined override > Edit, and set the scale of my attribute table. This is however not working. where am I going wrong?

  • Works for me well, did you entry the name of attribute properly? (for example "scale"). You can also pick field directly from data defined override menu - Field type: string, int, double
    – Oto Kaláb
    Jun 21, 2017 at 10:39
  • You are right, I had used the Function $scale instead of my Attribute "scale". Thanks!
    – rtaani
    Jun 21, 2017 at 11:43
  • You're welcome, I added my comment as answer.
    – Oto Kaláb
    Jun 21, 2017 at 12:00

3 Answers 3


For the Atlas generator, each map item has three options for scale under "Controlled by atlas":

  1. Margins around feature - Zooms to each feature and adds a certain percentage
  2. Predefined scale (best fit) - This will zoom to a scale level you have defined that best fits the feature. SO you can only have certain pre-defined scales in the output. (This is the option you want.)
  3. Fixed scale - The scale is always the same

With predefined scale you can set the scales to use in the main QGIS window: Project> Project Properties> General> Project scales

Now add your scales there and make sure that the extent that you have defined is close to the scale that you want, and QGIS will snap the atlas to that scale.


Works for me well, entry the name of attribute properly to the expression builder - for example "scale".

You can also pick field directly from data defined override menu - Field type: string, int, double.


You could make a grid based on your desired map extent as a coverage layer.


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.