I'm composing a map of Big Island, Hawaii in QGIS 3.14.0 and would like to display major roads and cities + towns. Therefore I downloaded necessary information via QuickOSM. However, as many towns lie close together, the label density is quite high: qgis_representation

Comparing the map with the representation from openstreetmap.org, I highly prefer the representation/ density from osm: osm_representation

How can I achieve the same density in QGIS? The downloaded data (which should be the same for both representations) does not contain any population information or other fields which could be used for filtering out unwanted towns. I've found following workaround which reduces label density but does not lead to the same representation.

Edit: I'm aware of the place tag which discriminates between different place types and that they can be styled differently. Asking about displaying towns I was actually referring to place = town, sorry for the ambiguity. I marked the same group of towns in both maps. With provided fields from QuickOSM I'm not able to discriminate further between those towns to achieve the same display density. As the underlying data is the same I think it should be somehow reproducible.

Edit 2: I'm accepting JoshC's answer that maps shown on the OSM website indeed don't have any additional data which would further discriminate between towns. The different representation stems from the used OSM styling parameters. Reproducing with GIS could work but seems not straightforward, as

tile styling is a little different from the way other GIS programs and services handle labelling.


I'd be curious to see the data you got, in which you claim there are not fields useful for filtering out smaller localities. QuickOSM will pull in the place and population tags for populated places.

In OSM, populated places use the place tag consistently (not so much for population, unfortunately), the values of which can be used in just such a way. When combined with QGIS's Rule-Based Labelling, you can acheive as close to OSM's labelling as you might want, given enough time and effort.

As a brief example, I've used QuickOSM to pull in points from the query place = *, and symbolized the results based on the place tag. I then created three separate labeling rules, which filter the points based on the desired value(s) in that tag.

Once my rules are set, each labelling class can have its own style, scale range, priority over other labels, "# of features rendered" setting, &c. As I mentioned, it's only a matter of how finely you want your label rules defined and configured. All I've done is set different font sizes for the example's sake.

rule based labeling on cities

If you're looking for a ready-to-use populated places point layer, you might consider Natural Earth's freely available downloads. Populated Places layer here. It doesn't always have as many features for smaller localities, but it does have attributes (including one called LABELRANK) that can be helpful for uses like yours.


In response to the OP's elaboration, their answer probably lies in the specific label rule's placement and priority settings, as well as the # of features labeled. Below is the place=town features only, with the number of labels limited.

limited labels

To the point of how/why OSM labels the way it does, there may not be a real reason why this place-name and not that one. I've looked at the various towns in the dense area circled in the question, and can find nothing about the features that would clearly distinguish any over the others for labeling importance.

Note that the tiles on the OSM website have a vector tile style, which you can find here. Vector tile styling is a little different from the way other GIS programs and services handle labelling. See lines 155-319 for medium-importance labeling rules.

Unfortunately, the MapCSS website seems to be unresponsive at the moment, so I can't confirm this, but I suspect it is the attribute text-margin. The particular arrangement of labels seen on OSM may simply be the optimal arrangement that fits the defined style.

Note that in other OSM tile styles, the visible town names are different, which I see as further indication that this is simply a styling issue rather than one of data.

humanitarian style

transport/cycle style

another tile style

  • Thanks for the Populated Places link! I further clarified my question in the edit. – tribol Jul 12 '20 at 21:21
  • 1
    Ah, that makes more sense, then. I will update my post. – JoshC Jul 12 '20 at 22:08

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.