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

Design of label only rendering of physical geography features #5062

Open
imagico opened this issue Feb 10, 2025 · 4 comments
Open

Design of label only rendering of physical geography features #5062

imagico opened this issue Feb 10, 2025 · 4 comments

Comments

@imagico
Copy link
Collaborator

imagico commented Feb 10, 2025

#4778 brings focus on the - so far - not very well planned display of name labels for physical geography features that are rendered with a label only.

Those are:

place=locality - nodes only, z16+
place=locality

natural=cape - nodes and polygons, z14+
natural=cape

natural=bay/natural=strait - nodes and polygons, z14+
natural=bay
natural=strait

natural=peninsula (as submitted in #4778) - nodes and polygons, z16+
natural=peninsula

There are several aspects of this that are not very well designed overall:

  • starting zoom levels - starting natural=peninsula two zoom levels after natural=cape is not very well motivated and probably does not make a lot of sense.
  • node/polygon rendering. Showing place=locality only on nodes is a deliberate choice. Rendering natural=cape labels on polygons is not - see Restrict rendering of natural=cape to nodes, change font to standard #3732 - which, unfortunately, got messed up in merging due to interference with Use ST_PointOnSurface for amenity points #3712.
  • label design - is not really following any overall principle. Care would need to be taken to develop a design that at least to some extent allows the map user to distinguish between the generic place=locality and the more specific feature classes and other features rendered with a label.
@quincylvania
Copy link
Contributor

Thanks for starting this discussion. I would also add place=island and place=islet this this list of physical features. Islands and peninsulas are functionally very similar as divisions of land area.

@dch0ph
Copy link
Contributor

dch0ph commented Feb 10, 2025

It's also worth mentioning that natural=strait also has a way rendering. This is an interesting option since adjusting rendering size based on way length is much less problematic compared to way area (which encourages messy multipolygons).
This might be an option for natural=peninsula which tend to be long and thin like straits?

@imagico
Copy link
Collaborator Author

imagico commented Feb 10, 2025

@quincylvania - yes, island/islet qualifies for this category as well (rendered label only) - however, this is an exception since we render it with a starting zoom level based on way_area like the landcover and water polygon labels:

https://imagico.de/map/styleinfo/#style=osmcarto&section=tags&key=place&value=island
https://imagico.de/map/styleinfo/#style=osmcarto&section=tags&key=place&value=islet

Reason is that in contrast to the other features place=island/place=islet are very diligently applied to coastline rings or inner rings of water polygons. Hence even without a direct visual feedback on the island geometry mappers get an indirect feedback based on the waterbody fill. During all the years we have done that we have never observed any substantial deviation from this mapping convention for islands - hence we are comfortable continuing that approach for islands.

@dch0ph - natural=strait is widely tagged on linear ways while natural=peninsula is not. In any case - directly placing a label on a linear way is problematic for us because it incentivizes mappers to place the way based on subjective labeling preferences rather than documenting verifiable geography. This can be well observed with the use of natural=valley - where various maps showing labels for those (like OpenTopoMap) have let to mappers widely drawing these deliberately off for a desired labeling outcome.

For natural=bay/natural=strait and natural=peninsula alike a much better solution would be to automatically infer a good label placement from the location and the surrounding water edge geometry and this way remove any incentive to mappers to generate geometries that do not provide any meaningful additional information. It has been demonstrated many years ago already that this is a viable approach (like #3634 (comment)) but it is ultimately up to the OSM community at large to decide if they want to invest in such methods.

Anyway - this is not actually what this issue is about, which is improving the existing plain point label rendering of these features.

@dch0ph
Copy link
Contributor

dch0ph commented Feb 11, 2025

Yes, it is all rather inconsistent.

I like the single bump in text size for natural=bay/strait.

I would be in favour of using the same zoom levels / style for natural=peninsula and natural=cape. The change of text style at Z17 is currently only used for populated places.

  • node/polygon rendering.

No firm opinions on this. I see that it is very rare to map natural=cape as a polygon, perhaps because it is discouraged by the Wiki. But the key thing seems to be avoiding changing label size based on way area since that does distort mapping practice.

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

No branches or pull requests

3 participants