gravitystorm / openstreetmap-carto

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

Render `highway=construction` at the same zoom levels as the finished road #4858

Open mvglasow opened 1 year ago

mvglasow commented 1 year ago

Expected behavior

If highway=foo renders at a certain zoom level, so does highway=construction; construction=foo.

Actual behavior

highway=construction, construction=* does not render at zoom levels < 12.

Screenshots with links illustrating the problem

https://www.openstreetmap.org/#map=13/50.7981/21.4297 https://www.openstreetmap.org/#map=11/50.7981/21.4297

Additional information

If we are going to render highway=construction (which makes sense to do IMHO), the zoom levels at which we do so should match those of the finished road – if a road is relevant at a certain zoom level, so are sections under construction. Especially for higher-order roads (motorway, trunk or primary), sections under construction may be long and may need a low zoom level (for example, the S61 in Poland from Ostrów Mazowiecka to Łomża, under construction as of August 2023, just about fits on a full-HD screen at zoom 12).

The style may need some optimization at lower zoom levels, as the white part of the dashed line may be hard to distinguish from the map background. One possible way to resolve this would be to use longer dashes, especially at zoom level 12 and lower.

imagico commented 1 year ago

Our rendering of the main road classes (in terms of starting zoom level as well as design) is based on the road's functional classification. In that regard a road under construction has a completely different function (and one of typically much lower practical significance for the target map user) - hence rendering them later than operational roads is logical.

Now other map styles might do this differently, in particular if they show roads under construction more as a projection of a future reality rather that a display of the state of the moment. Some maps even take this a step further and also display planned/proposed roads - but we don't - see #1654.

mvglasow commented 1 year ago

As for current vs. future reality, highway=construction implies not only that there will be a road in the future, but also that there is currently a construction site (the tag is intended for roads on which work has already started, not for planned/proposed ones). This would be visible on satellite/aerial imagery (similar to the finished road). On the ground, accessibility of the area may be restricted. Bottom line – highway=construction is also a display of a current state, verifiable on the ground.

I see the point that a road under construction still might have a different relevance than a finished road, though that is likely to depend on the use case. If we derive relevance from what is verifiable on the ground, higher category roads tend to have wider carriageways (or even multiple ones), more bridges/tunnels/embankments/cuttings (to minimize gradients and avoid level crossings), all of which result in larger construction areas – easier to spot on imagery and more difficult to get across. So even during the construction phase, relevance varies with the road class.

Therefore, even if we consider a road under construction less relevant than its finished counterpart, I would suggest reconsidering the minimum zoom level.

Right now, zoom levels are as follows:

Zoom Area shown (at full HD) Minimum for features
6 Country the size of the UK Motorway and trunk roads
8 Country the size of Czechia or Switzerland Primary roads
9 Multiple regions Secondary and tertiary roads
12 Large city Residential/unclassified roads; motorway, trunk, primary, secondary roads under construction

For long-distance roads (motorway/trunk) under construction, I would therefore suggest a minimum zoom level no higher than 8 or 9, which is about the minimum for following the course of a longer road of that category. It would be somewhat of a compromise between the status quo and my original suggestion.

pnorman commented 1 year ago

Our current cartography for construction is likely to be a problem at very low zooms