gravitystorm / openstreetmap-carto

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

Rendering of name labels on place=suburb/quarter/neighbourhood polygons #4986

Open joshinils opened 5 months ago

joshinils commented 5 months ago

Expected behavior

Render the given name for the place polygon.

Actual behavior

Nothing is rendered

Screenshots with links illustrating the problem

https://www.openstreetmap.org/way/806155225 image

Previously this was a landuse=residential with the same name; image

also regarding #105 this is kind of the opposite problem. i don't want to put in a relation with a node in the center to render the name of this place. I've only ever seen the name of a place rendered iff it is such a relation.

also related to #4839

imagico commented 5 months ago

As phrased this issue is invalid - we render place=neighbourhood with a name label - see https://imagico.de/map/styleinfo/#style=osmcarto&section=tags&key=place&value=neighbourhood.

What you observe is that we render place=neighbourhood only on nodes, not on polygons. This is a conscious choice based on the practice of use of populated place tags as discussed at length in #103.

Note past discussion was always around standalone populated places of the types city - town - village - hamlet - isolated_dwelling. We have so far only casually looked at mapping practice for place=suburb/quarter/neighbourhood (https://github.com/gravitystorm/openstreetmap-carto/pull/2816#issuecomment-451998593).

Current numbers of place=neighbourhood:

I have not studied mapping practice on this enough in depth to form an opinion on rendering those.

If this is what you want to suggest please rephrase the issue accordingly. As always with questions of rendering polygons with tags otherwise predominantly used on nodes the main question is if mapping of these is geometrically consistent enough for us to reasonably provide positive feedback in the map.

See also #4842.

joshinils commented 5 months ago

I want to have these polygons to be rendered with their name. I see no difference regarding the presence of a landuse=residential tag. The name of a place should always be shown.

I believe the practice of tagging the combination of landuse=residential with any name is tagging for the renderer since these polygons seem to always be shown at some zoom level.

I don't know why these polygons of landuse=residential are named, and I don't approve of it. Usually, this is wrong to my understanding. Most of them that I come across are better described as a place=* of some sort with their name, and almost always is the landuse=residential smaller or not as big as the boundary someone drew around the thing/collection/place that has a name.

Sometimes I also see single plots that are wrongly tagged as a landuse=residential with a name, so any of these that the wiki mentioned are worth appearing with their name:

these are not:

joshinils commented 5 months ago

https://www.openstreetmap.org/way/974158589 is a polygon place=borough with a name which is not rendered. But it looks like mapped in error, since there is a type=boundary tag present. This also exists there: https://www.openstreetmap.org/node/10178426367

another polygon place=borough is: https://www.openstreetmap.org/way/776151738 which also has an independent name-node: https://www.openstreetmap.org/node/7243856959

joshinils commented 5 months ago

The same happens with place=city, too: node: https://www.openstreetmap.org/node/20949228 is rendered way: https://www.openstreetmap.org/way/231549499 is not

and these are also independent, with no relation present (which I think is in error, iff both exist)

imagico commented 4 months ago

As you framed this now to be about all populated place polygons this is a duplicate of #103.

We can have this as a separate issue for place=suburb/quarter/neighbourhood. But any new discussion of place=city/town/village/hamlet/isolated_dwelling should go to #103.

Please be a bit more careful with your claims. I linked to styleinfo where you can see which tags OSM-Carto interprets and how they are rendered. We show with a name label on nodes, and only on nodes (in addition to place=city/town/village/hamlet/isolated_dwelling):

If you want to suggest the new rendering of any tags we currently do not render at all please open a separate issue for that.

The main problem that led us reject rendering of place=city/town/village/hamlet/isolated_dwelling on polygons was that there is a clear lack of consensus among mappers on:

If the situation is different for place=suburb/quarter/neighbourhood would need to be determined.

joshinils commented 4 months ago

I don't understand how #103 came to be such a big Issue. I'm aware I don't understand the history. Naively I'd assume that a convex hull of any polygon containing any node with the same place tag and value should count as duplicate data and thus all but one should be omitted for rendering. If they are in a relation, this is purposefully and logically combined and the name is always shown at the node location.

To me, the only difference between a plain polygon with place and name vs. a relation with an outer member and label-node member is that a mapper manually chooses where to place the label instead of some other way of computing it.

I would rather have the fallback be that if there is no node the named polygon (or relation even, if there are such) gets its name displayed, as opposed to nothing at all.

We can have this as a separate issue for place=suburb/quarter/neighbourhood. But any new discussion of place=city/town/village/hamlet/isolated_dwelling should go to #103.

If #103 only discusses plain polygon place=city/town/village/hamlet/isolated_dwelling without a node, I'd like to suggest adding a label rendering for polygon place=suburb/quarter/neighbourhood without a node/relation.

If you want to suggest the new rendering of any tags we currently do not render at all please open a separate issue for that.

But also for place=borough/city_block/plot, since they exist and thus can be named. For these, there are currently no results on imagico.de. If there is overlap with #4987 I apologize.

Please be a bit more careful with your claims.

I'm trying, as I understand. I've only given examples for non-relation polygons without nodes.

if both node and polygon can exist for the same place or if it has to be just one.

Even if only one of both exists, it's worth it to be displayed. The only issue arises if indeed both exist without a relation. And even then one could try to match them and deduplicate them.

imagico commented 4 months ago

This has all been discussed at length in #103. Please bring up any new considerations on populated places in general (regarding changes in mapping practice, de-duplication etc.) there.

This issue only makes sense as a separate issue for place=suburb/quarter/neighbourhood so discussion here should focus on thoughts and arguments specific to these tags.