Thanks for bringing this up. I think the objective of nice labels is entirely achievable today, and you’ve chosen the right adjective to describe the cartographic objective.
Below is an OSM Americana clip of the North Atlantic. It renders
place=sea nodes, and both categories are readily rendered.
You’ll notice that the label for Mediterranean Sea is rendered, however the label for Tyrrhenian Sea is not. The reason for this is that, in this renderer, land labels take precedence over sea labels, and the labels for Sardinia, Italy, and Basilicata collide with the spot where Tyrrhenian Sea would be, so it’s dropped. In effect, this acts as a natural solution for dealing with dropping labels at lower zooms for smaller seas.
As you zoom in, the relative size of these waterbodies increases on the screen, and by zoom 5, labels for Tyrrhenian Sea and Sea of Crete now have enough separation from nearby land labels that they appear. However, no label appears for the Adriatic Sea, as it is one of those beast multipolygons that you so passionately hate.
As I see it, there are two possible objectives for waterbody labeling strategies:
- Render water labels only when they fit entirely within the waterbody; labels are not allowed to touch land (contained labels).
- Render an “attractive” label, and it’s acceptable if the overlap a land area somewhat (overlapping labels).
To achieve contained labels, there’s no getting around the fact that you need a constraining polygon to do this. That’s of course the motivation for mappers drawing tight coastline polygons - the renderer can guarantee containment of the label. Some have suggested that an algorithmic approach might be possible, where the software could detect the shape of the surrounding land and make the label the right size, but as yet I’m not aware of anyone that has demonstrated this in practice. As such, this suggestion tends to be a red herring offered by people opposed to the complex polygons that doesn’t actually solve the problem because it requires technology not readily available.
However, I suggest that constrained labels is not really an important objective for ocean and sea sized bodies of water. At these low zoom zooms, it’s still an attractive label (in my non-professional opinion) if it touches land. And in fact, if you look closely at the first clip, you’ll see that the “Mediterranean Sea” label actually covers a tiny bit of the island of Crete, which is barely large enough to be shown at that zoom.
The worst-case scenario for overlapping labels is a sea that is very narrow and runs in a general north-south direction. In other words, the Gulf of California, which looks like this at zoom 4:
This label overlaps land a lot but in my opinion this looks perfectly fine. After all, land labels are dangling into the ocean as well, and that looks okay, and it’s not in the way of any other label that would otherwise render.
In summary, I think that fitting labels perfectly within waterbodies is not a real problem in rendering attractive labels, and it’s a niche requirement for a renderer that desires that behavior.
As of right now, these so-called “beast multipolygons” are blocking my renderer’s ability to render attractive labels, and my desire would be to systematically replace them with nodes. Should this not be acceptable to the community, I have the technical know-how to add render support to OpenMapTiles to add support for labeling beast multipolygons, but I would prefer not to. I don’t share the same passionate hate for them, but they’re in my way and conversion to nodes is by far the easiest path to get there.
However, I want to caveat this already too-long post with a note that I am unaware of what other data consumers may be doing with these features and so I wouldn’t want to impose such a change unilaterally at global scale. I will note that osm-carto is labeling neither style of object and thus it seems it would be no impact on the standard tile layer to apply the solution that we both prefer.