Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Label rendering for admin boundaries is confusing and barely legible #4117

Open
Prince-Kassad opened this issue Apr 12, 2020 · 6 comments
Open
Labels

Comments

@Prince-Kassad
Copy link

At some point we introduced label rendering for admin boundaries. This is rather confusing for a number of reasons:

  • Admin boundary labels are rendered same as power substations (of all things), i. e. purple and italics. This is extremely easy to miss against landuses like forest and ironically, it's also less prominent than place nodes for cities on every single zoom level, though the problem is especially egregious on very low zoom levels like z5. In many cases the admin boundary labels just get blocked by place nodes.
  • We render multiple different admin levels at the same zoom level, which is bad style. For example looking at Europe at z5, I see the label for Germany (al=2) as well as the labels for a few of its states (al=4). Multiple different admin levels should not render on the same zoom level.
  • As far as I can tell there is no label rendering for municipalities (al=8). This is important to add as it could eventually lead to deprecation of place nodes in total (which is something wished by people since the beginnings of OpenStreetMap).

I think these problems need to be fixed, they make the map look embarassing.

@Prince-Kassad
Copy link
Author

Another problem I just noticed is that we do not support label placement by role "label". That leads to funny results, see e. g. https://www.openstreetmap.org/#map=9/53.1624/9.2642 where both the admin boundary label and the place node label for Bremen render at the same time, and the place node for Hamburg is outright blocked by the admin boundary label!

@jeisenbe
Copy link
Collaborator

We have rendered a central text label with the name for admin_level=2 (independent countries) and admin_level=4 (provinces) for some time.

This new release includes #4100 which slightly changed the color of admin text labels: this could be reconsidered, since we are still discussing further changes.

As far as I can tell there is no label rendering for municipalities (al=8).

The new PR #4100 just added the rendering of admin_level=5 and =6 central text lables for the name of these boundaries, though this is at lower priority than towns, villages and cities (unlike the labels for countries and states, which are higher priority than most towns and cities). I did not include admin_level=8 in this PR because, as you mentioned, usually this duplicates the place=village/town/city node.

We render multiple different admin levels at the same zoom level, which is bad style. For example looking at Europe at z5, I see the label for Germany (al=2) as well as the labels for a few of its states (al=4).

Features with admin_level=4 include mid-sized features like German States, as well as tiny provinces in countries like Uganda, and huge provinces in countries like Canada, so it is not very easy to solve this problem. Many small countries, (Andorra, Luxembourg, Monaco, Singapore) are smaller than most provinces, so the right zoom level to show each feature depends strongly on the region of the world. We do have an issue about showing provinces differently depending on country, but the performance of this was bad before:

it's also less prominent than place nodes for cities on every single zoom level, though the problem is especially egregious on very low zoom levels like z5. In many cases the admin boundary labels just get blocked by place nodes.

That is mostly intentional: large cities are better known that most provinces at the international level, like z5. You probably recoginize New Delhi, and Mumbai, but do you know Maharashtra (It's a State with >100 million people)?

And New York (City) is more important to render than New Jersey, Connecticut or Rhode Island.

The admin_level=5 and 6 labels are rendered later (at lower priority) than place nodes, since in PR #4100 this was better than the alternative which would block the names of towns. In the future, with a new version of Mapnik, it might be possible to use more label location alternatives to try to fit in the name of the area more often.

We could try making the text darker in the next PR, and there was also a suggestion to try bold fonts for country labels instead.

we do not support label placement by role "label".

Right, we don't want to have mappers hand-place the labels for us.

@jeisenbe jeisenbe added the admin label Apr 13, 2020
@Prince-Kassad
Copy link
Author

I still have the opinion that purple is not a good color to use for admin boundaries, it doesn't contrast well with most other colors used on this style and we already use purple for power= features, so we should probably forego using purple altogether. Google Maps uses gray and that should be reconsidered if it can be made to look well with railroads.

Right now the labels don't provide good viewer feedback because the corresponding borders are so faintly visible. Look at Germany on z8 and you'll see what I mean.

You probably recoginize New Delhi, and Mumbai, but do you know Maharashtra (It's a State with >100 million people)?

That depends on viewer context. Someone looking at a map of India is very likely to either live there, or have ancestry going back to that country, so they're likely to be familiar with the local administrative system. I probably couldn't name all 50 US States either but that's not a reason not to render them. (Our current style doesn't even render the labels of the 48 continguous states which would probably be considered unacceptable to any US viewer.)

we don't want to have mappers hand-place the labels for us.

This is the sole purpose of place= nodes, it's literally the definition of "mapping for the renderer", because automated mechanisms cannot sensibly place the name of villages correctly even if we do have boundaries mapped. It's always been hoped that one day we can get rid of place= nodes and just give hints for the renderer by using a node with role "label".

@jeisenbe
Copy link
Collaborator

Re: different color boundaries, see issue #3489 where we have considered different colors. Right now I am inclined to change them to #427b58 Lch(47,30,154) as shown in #3489 (comment)

@ppete2
Copy link

ppete2 commented Oct 12, 2020

I want to observe the following regarding admin municipalities. In everydays life its names are as important as those of villages or towns, hence its names should be rendered on an universal mapstyle like Carto. Adresses, Websites, articles in newspapers etc. rather use the name of the administrive municipalities instead of its villages or hamlets they consist of.

In Germany or Austria they are either mapped by its boundary=administrative + admin_level=8 polygon. Or sometimes additionally with a place=municipality node.

In most cases the municipalities' names are already rendered within Carto cause its name equals the name of a place=village or place=town-node within its borders. But sometimes there's a municipalities' name with no identical village/town name. An example is "Söhrewald", boundary: https://www.openstreetmap.org/relation/1115035 and municipality-node: https://www.openstreetmap.org/node/240116344

It would be great if Carto would render these municipalities lacking a village/town node with identical name within its boundaries.

@Fintocubano
Copy link

Regarding admin boundary colour:

Re: different color boundaries [...] right now I am inclined to change them to #427b58 Lch(47,30,154) as shown in #3489 (comment).

I think the green colour proposed by @jeisenbe would conjure in the map end user's mind a national/regional park's boundary, something to do with parks or green areas, not towns/provinces/regions/countries. I would therefore be inclined to use a colour that matches as much as possible the colour of the polygon of the area it refers to, for a mere reason of clarity to the map end user. So if a town/village built-up area is a ''grey'' polygon in Carto, the relative admin boundary should be in a shade of grey (no pun intended!), the darker and thicker for countries/nations and the lighter and thinner for the lowest admin level (municipality) as is the case with national/regional park or protected area/nature reserve: they have a ''green'' polygon, ditto its boundary;

I have not read the whole discussion re rendering and colours and I may contribute to it later.

===

Regarding rendering of names of towns/villages:

In most cases the municipalities' names are already rendered within Carto cause its name equals the name of a place=village or place=town-node within its borders. But sometimes there's a municipalities' name with no identical village/town name.

There is an identical issue in Italy, like the one mentioned above by @ppete2. I described it in the OSM forum last year (https://forum.openstreetmap.org/viewtopic.php?id=66967). Italian villages (and increasingly now towns which have merged into one single admin level 6-8 municipality) are sometimes made up of scattered hamlets with their own names, while the name of their head municipality (which does not exist physically) is not shown on the map at all.

This leads, I think, the end user to get no clear information from the map.

An example can be the one of the village (admin level 6-8) of Lucoli as shown in the Italian Earthquakes Institute (INGV) website (http://cnt.rm.ingv.it/event/22772041), which uses OSM as a background map to show its users the location of the (frequent) earthquakes in the country. The website says the earthquake happend in Lucoli (see text above the map), but the map, after zooming in, does not show the name of the village of Lucoli at all, whereas the names of the neighbouring villages of the same admin level are shown instead. If the INGV had used the De Agostini map (raster image) as a background, the name of Lucoli would have appeared. See screenshot below:

Lucoli

Taken from Italian Ministry of Environment (http://www.pcn.minambiente.it/viewer/)

Another more important example (because of the size of the population living there, almost 80k people) is the town of Corigliano-Rossano made of Corigliano Calabro and Rossano. The label Corigliano-Rossano is not shown on the map at all.

I too would be very keen to see a solution to this map rendering issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants