7

For the love of all that is good on this Earth does anyone have a fix for this? When I export my print composer map in anything greater than 120 DPI the street labels from the ESRI Transportation basemap shrink to unreadable sizes. This also happens with Google Maps layers and I'm going to guess others as well.

enter image description here

The above image is how it looks in the print composer, but when I export as a PDF in anything over 120 dpi (In this case 300) I get the following:

enter image description here

sooooooo tiny.

This just doesn't make much sense to me. Does anyone have a legitimate fix? I see some similar questions around here but with no good answers.

Also, fair warning, my experience with coding is limited to a college class that I dropped after 5 days... So please, if you have an answer, don't make it too complicated. I have seen stuff about XML files and XYZ tile thingies and none of that has worked for me.... I just keep getting blank basemaps and/or errors.

To anyone who can solve my issue: you will be rewarded with my undying gratitude.

3
  • 2
    Welcome to GIS.SE. It makes totally sense, since your map canvas has a different scale from your map window, thus the composer choses the most fitting resolution of the basemap. Possible fix: Get a basemap with fixed resolution, e.g. 1:25k and use that one.
    – Erik
    Commented Jan 24, 2019 at 15:42
  • 2
    Hi Vinnie, IMO you don't have a realistic chance to get this fixed. This is because the remote service is rendering the image due to the resolution you asked for...the higher the resolution the much more tiny it will be....only chance is to render the image by yourself, wich means some more work....but let's see...may be the community will have better ideas then me.
    – eurojam
    Commented Jan 24, 2019 at 15:44
  • @Erik I appreciate the response. I'll see what I can do in terms of finding a better basemap that fits what I'm trying to do. Haven't had much luck with that which is why I was hoping I could get that ESRI Transportation one to display correctly.
    – Vinnie S
    Commented Jan 24, 2019 at 16:17

2 Answers 2

12

This issue has been discussed (and lamented) many times on this site before. Have a look at these questions:

This is a limitation of base layers from WMS services. They're rendered as tiles, which means that the size of the labels is baked into each zoom level. When you increase the resolution, the server provides you a more zoomed-in tile, which has: (1) higher resolution and (2) smaller labels. You can't get (1) without (2).

One workaround is to force the tileserver to give you the zoomed-out version of the tiles. The image will be slightly fuzzy/pixelated but the labels will be larger. There are two ways to do this:

  1. Reduce the dpi of your export. This requires some trial and error to find the highest dpi that will still give you the higher zoom level.

  2. Import the WMS layer as an XYZ tile layer. The basemap will still have a low resolution, but the other elements in your map can have as high a resolution as you want.

    First, find and copy the service URL from the layer properties > Information > GetMapURL

    enter image description here

    Next, open the Browser panel, right click on "XYZ Tiles" > New Connection. Paste the URL you found before. Set the max zoom level, and give the layer a name like "This Basemap max zoom 16". Import the layer from the browser.

    enter image description here

    It takes some trial and error to find the right maximum zoom level for the scale at which you're making maps.

Another workaround is to use a basemap without labels, and add the labels from another source.

  • If you search around, you may find a WMS basemap which is just label, so you can control the label size independently. For example, through the QuickMapServices plugin you can get a layer called "ESRI Boundaries&Places" which has place names (cities, states, parks, natural features) and political boundaries, but no street names.
  • Or you can manually add the labels you want.

It's a trade-off between the convenience of a pre-made basemap versus having control over every aspect of your map.

3
  • 1
    Infact if you use an actual WMS then qgis can send the server a dpi hint to allow for this, the issues arise with xyz servers that do not have this ability
    – Ian Turton
    Commented Jan 24, 2019 at 19:39
  • Good point @IanTurton. It looks like the layers added by the QuickMapServices plugin are XYZ tile layers, not WMS layer. Can you confirm this?
    – csk
    Commented Jan 24, 2019 at 20:42
  • The links are mostly outdated or of little use. Workaround 1 works for QuickMapServices (e.g. Google Labels). Commented May 1, 2022 at 18:48
-2

Lowering output resolution works for this issue

1
  • Welcome to GIS.SE. Though your answer is technically correct, please expand it, so it contains details on how to achieve your solution exactly. Thank you.
    – Erik
    Commented Oct 16, 2019 at 11:35

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.