gravitystorm / openstreetmap-carto

A general-purpose OpenStreetMap mapnik style, in CartoCSS
Other
1.51k stars 812 forks source link

Islands' names should be visible sooner at low zoom level #4178

Open harlock974 opened 4 years ago

harlock974 commented 4 years ago

Expected behavior

Islands' names should be shown at small scale/zoom level regardless of their administrative status.

Actual behavior

At small scale, islands' names which are not countries are not displayed. It's annoying when browsing archipelagoes : you need to constantly zoom in/zoom out on each island to see its name. An example below at zoom level 7. The name of the island in the middle (Mauritius) is shown because it is also a country name. Names of the other islands are not displayed : Reunion (French) to the left and Rodrigues (Mauritian) to the right. For Reunion, the name of the main town (Saint-Denis) is shown, but not the name of the island : this is illogical, as island name should take precedence over features' names inside it.

Links and screenshots illustrating the problem

https://www.openstreetmap.org/#map=7/-20.273/59.205 Mascareigne_archipelago-zoom7

imagico commented 4 years ago

As you indicated the label "Mauritius" is displayed because it is the name of an administrative unit and not the name of the island. The administrative unit is much larger than the island because it contains the territorial waters.

Island labels depend on the size of the island - none of these island at that zoom level is large enough for a label. The threshold is chosen to make sure the label is not too much larger than the island to avoid it being confusing in more complex cases. Better labeling decisions are difficult in a real time updated map like this.

Prioritizing place=island labels over populated place labels and administrative unit labels for admin_level > 2 is a sensible request - a better example for that is https://www.openstreetmap.org/#map=9/28.2693/-17.0439

harlock974 commented 4 years ago

Very good example. Names of La Palma and la Gomera should have been shown. I understand your first point, but I think nevertheless that island name should have the same priority than country name. When you work on islands at archipelago scale, it is still easier to use a paper map than Openstreetmap. With Canarias example on a medium zoom level, there is plenty of room and five island's name are lacking : https://www.openstreetmap.org/#map=8/28.688/-15.178

jeisenbe commented 3 years ago

We currently show text labels for the names of glaciers when they are at least 750 standard pixels square, starting at z10. Almost all other text labels of areas are shown when the area is > 3000 way_pixels.

But perhaps we could map an exception for island names at mid zoom levels, since they tend to be important, and are unlikely to collide with surrounding features (being surrounded by water)? If we change the limit to 750 way_pixels for place=island, this would show the name labels 1 zoom levels sooner.

jeisenbe commented 3 years ago

Regarding the priority of island names versus administrative areas and towns:

Currently islands names are rendered after all administrative names and names of settlements.

It would be possible to change this by moving the rendering of island names to placenames-medium: this would be lower priority than Provinces/States and Capital cities, but higher than towns and villages. I suspect that place=city features should usually be rendered with priority over island names, but that may depend on the local context: these are also rendered in placenames-medium so we could choose the priority.

harlock974 commented 3 years ago

It will be great. I recently did an historical research where I needed a good map of the Caribbean, and it was impossible to use Openstreetmap because of this lack of priority of island names...

jeisenbe commented 3 years ago

@harlock974 - in the future you might want to try another map style which is focused on physical geography features, e.g. https://www.thunderforest.com/maps/landscape/ -

Screen Shot 2020-09-06 at 11 54 55