gravitystorm / openstreetmap-carto

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

Implicit default in road surface rendering #4724

Open imagico opened 2 years ago

imagico commented 2 years ago

With our new rendering of roads with unpaved surface (#3399) we make the assumption of an implicit default of the standard road classes of a paved surface when no surface is tagged. This is because design wise it would have been very difficult to find a third styling variants for roads with an undefined surface.

This is however problematic primarily for two reasons:

Some number of actual tag use - for the minor road classes (unclassified/residential/service) - which constitute the bulk of road features in OSM - percentage of features explicitly tagged with surface is between 13 and 26 percent. For residential/service paved values outnumber unpaved values about 2:1, for unclassified this is the other way round.

I am not aware of any other map styles rendering surface on roads that do not make an assumption of paved surface as implicit default.

I open this issue to collect perspectives on the subject. My view at the moment is that i would like to see the current design and tag interpretation logic to be rolled out and see how it will look on a global level and how map users will see it. We could probably consider options to highlight the lack of surface tagging at the highest zoom level if we really wanted to - though this would add visual complexity and would compete with other secondary tags of roads we might want to render. Hence i have strong doubts this would be a good idea

imagico commented 2 years ago

Since it was asked in #4723 - i don't have hard data on prevalence of road surfaces in Germany but my impression is that the relative percentages of surface tagging of roads in Germany roughly represents the prevalence in reality. For most road types the dominating surface value is asphalt, for highway=residential for example:

https://taginfo.geofabrik.de/europe/germany/tags/highway=residential#combinations

asphalt is more than ten times as frequent as the next most frequent value paving_stones. The only road classes where this is different are probably pedestrian and living_street with paving_stones dominating.

Note the real world prevalence in individual countries is not a significant factor here, in particular because as already hinted at above the prevalence of paved and unpaved roads in a region does not necessarily seem to be correlated with the assumption of an implicit default of surface among mappers in the area.

yvecai commented 1 year ago

Rendering as unpaved by default is an obvious solution: this is disruptive, but there is no drawback in adding explicit surface tags on every paved way of the database.

richlv commented 1 year ago

I suspect https://balticmaps.eu might be defaulting to unpaved. Note that they use red-ish casing for paved, making it easier to distinguish, especially when several different road types are involved. Personally, I'd prefer defaulting to unpaved, as it's somewhat safer - if somebody would make a travel decision (for example, choosing paved roads for a motorcycle ride), defaulting to paved could cause issues.

imagico commented 1 year ago

That does not appear to be an OSM based map so this is not really relevant here.

richlv commented 1 year ago

Sorry if I misunderstood you, thought this is about the general principle.

map-per commented 1 year ago

A different approach would be to use a question mark pattern for roads without surface information. (With question mark pattern I mean a pattern consisting of several small question marks on the road area, similar to the dot patterns used for unpaved roads)

This way the rendering of roads with unknown surface would be distinct to both paved and unpaved roads, similar to the way three different dash patterns are used for displaying the surface of footways, cycleways, and paths

hungerburg commented 1 year ago

Looking at a changeset, where a so-called "dangerous" path was removed from date, it appeared to me, that this path was rendered more prominent than a so-called "official" path close by. Below annotated image:

path-surface

The difference between the (deleted path 705841786 and the official path seems to me to be about surface, I am wrong? If so, can the default for path be unpaved?

imagico commented 1 year ago

Paths are currently not rendered with an implicit default for surface, we have three line pattern variants:

At z19:

pavedunpavedunknown

That these are hard to distinguish in many cases is a known problem (#1793, #1765).

See https://imagico.de/map/styleinfo/#style=osmcarto&section=tags&key=highway&value=path for a more complete overview of styling variants.

For highway=track we currently don't render surface=* but we have a suggestion to change that (in a way that would also not have an implicit default) in #4322 that has fairly broad support.

hungerburg commented 1 year ago

Thank you for the picture - Form the appearance I understand, that in OSM Carto a path with unknown surface is something in-between a path with surface=paved and a path with surface=unpaved.