I'm having trouble printing a map with a desired scale. I set the scale to 1:100,000. The page size is 30x30 cm, therefore the real world map extent should be 30x30 km. However, as one can see with the scalebar, my real world extent is about 20x20 km. The scalebar is correct, I also checked the map extent on some web maps, the extent really is too small. Since the paper size (30x30cm) is also correct, something must be going wrong with the scale.

I'm using qgis 2.16.3 on Mac os X 10.9.5. Projection of the project is EPSG:3857 (on the fly enabled), projection of the layer is WGS84. It's OSM data from geofabrik.

note the size of the image, the scale and scalebar. it doesn't add up

  • 3
    epsg:3857 doesn't conserve distances so this will depend on where on the earth you are mapping - I think the scale is calculated at the Equator – Ian Turton Nov 10 '16 at 13:13
  • 1
    Thx a lot, that was the problem! For the record: I adjusted the scale by factor 1/cos("latitude at image center"/180*pi). Not the most elegant solution but it works good enough – lmoe Nov 10 '16 at 13:38
  • Do you know that the scale is also different for North-South and East-West axis? – user30184 Nov 10 '16 at 13:57
  • Thats what i meant with "... it works good enough". Its impossible to exactly display a rectangular part of the world on a rectangular piece of paper, but i think its the closest approximation that one can get with that projection – lmoe Nov 10 '16 at 14:41

EPSG:3857 doesn't conserve distances so this will depend on where on the earth you are mapping - I think the scale is calculated at the Equator.

The easiest fix for this is to switch to an equidistant projection like: EPSG:102014 or other depending on your region of interest.


Generally speaking the UTM grids are a good place to start if measurements or scales are involved.

In your particular case (Switzerland) this would be UTM 32N and I'd recommend the ED50 (European Datum) version ED50 / UTM zone 32N (EPSG:23032).

Since Switzerland has its own National Grid system (see swisstopo and epsg.io) CH1903+ / LV95 (EPSG:2056) I personally would use this for any printed output unless I had a specific reason not to.

  • The problem is that we are making maps all around the globe - switzerland was just an example. Because my coworker already did all his work globally in EPSG:3857 and its not really possible to project his data (its not georeferenced), I kinda got stuck with it. – lmoe Nov 10 '16 at 14:36

Just in case anyone still has this question, it appears that the scale in QGIS' Composer is proportional to "mapunits".

Even though my project is in feet (EPSG 2225), the layout in Composer is in 1" = XXXmapunits (rather than what I want, like 1" = XXX').

So, if you'd like to have a printed map that is in a traditional scale, like 1" = 50', than you have to provide the correct scale, in this case, I would enter a scale of 600, or 600mapunits, since:

50'/1" * 12"/1' * 1mapunit/1" = 600mapunits/1"

Here, my target scale is 50'/1", but I enter 600 in Composer's scale field. It prints out correctly.

Here's a brief checklist of the other things to try:

  • Set the overall project CRS to an equidistant projection (i.e. EPSG 4326, 6339 or 102005 - see http://spatialreference.org/ for others)
  • Bring in Google or NAIP imagery (usually in EPSG 3857) using on-the-fly projection
  • Set the “Composer’s” scale - in mapunits/inch - and match the CRS to that of the project
  • Include a scalebar matched to the above map
  • Size the paper correctly (right-click on the page and select "Page Properties"), and output to PDF
  • Make sure PDF printing options do not Zoom or Fit-to-Page

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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