I currently am working on creating a choropleth map of population redistribution data, and would like to stack three layers on top of each other.

First, a simple basemap-- I chose to use a Cartro Blank Basemap, imported through the XYZ Tiles link function, to show basic coastlines and simple road maps. Second, I created a choropleth map with color coded zip codes based on population data (I have finished this step, and successfully overlayed it as shown below.)

choropleth map

The final layer I would like to add is a set of location labels similar to Google Maps' scaled location names - it would show more detailed town names and local labelling as you zoom in, but on a larger scale all you would see is labels for major cities / states. Are there any layers available which only contain location labels, and not an actual map? Or any where I can separate the map from the labels in order to accomplish this "stacked" appearance?

2 Answers 2


There are a number of things you could do.

  • One, you could use the QGIS plugin OSMDownloader. With it you can (1) download your area of interest (2) save the file (3) open it in QGIS. You select the area by dragging the box. All points, lines and polygons, and their labels, are included in your selection. You just have to turn off the symbols in the map and keep the labels. See this question for more details.

enter image description here

Under Labels> Rendering> Label options is where you can set the Scale dependent visibility for the labels.

enter image description here

  • Alternatively, since it looks like your area might entail a huge OSM dataset, you might want to use the OSMDownloader for smaller areas only. It's easy enough to find polygons for cities, states, etc. You could then just give those polys or points no stroke and fill in the Symbology pane, and only use their labels.

Leaflet Providers shows a few label-only tilesets, for example "Stamen.TerrainLabels". See https://leaflet-extras.github.io/leaflet-providers/preview/#filter=Stamen.TerrainLabels

See all possible layers in leaflet-providers at https://leaflet-extras.github.io/leaflet-providers/preview/ (activate different tilesets/layers on the right sidebar)

Extract the tile URL from the leaflet code at the top and use that to load the tileset in QGIS.

  • 1
    For future use: https://stamen-tiles.a.ssl.fastly.net/terrain-labels/{z}/{x}/{y}.png was the link that worked-- it took a little bit of tinkering with the formatting to get it to work precisely. Thank you! :) Jul 9, 2021 at 17:22
  • There are also a few other options in the leaflet layer database-- for future use, all you have to do is remove the {s} and {r} tags and ensure the link ends with .png to use in QGIS' XYZ tiles function! Jul 9, 2021 at 17:51

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.