gravitystorm / openstreetmap-carto

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

Casing overlaps fill on certain highway=pedestrian intersection combinations #4866

Open ZeLonewolf opened 1 year ago

ZeLonewolf commented 1 year ago

Expected behavior

Connected pedestrian highways have connected fills

Actual behavior

Some combinations of connecting pedestrian highways cause the casing to overlap a fill on an adjoining way.

The case I found has these combinations on intersecting ways:

  1. highway=pedestrian
  2. highway=pedestrian + access=no
  3. highway=pedestrian + covered=yes

Screenshots with links illustrating the problem

At the following location in Pompei, Italy, Via Marina has two intersections with unexpected casing/fill overlaps:

image

Link: https://www.openstreetmap.org/#map=19/40.74883/14.48430

imagico commented 1 year ago

We render roads with covered=yes the same as with tunnel=yes. So the shown results are as expected. Ideas how to change that to provide more differentiated mapper feedback would be welcome - but would need to work with the various use cases of covered=yes (which is not easy).

Two other problems can be observed in the shown example:

Side note: T-Junctions between normal and bridge/tunnel/covered roads are inherently ambiguous. It is therefore fairly broad consensus that roads should be mapped in a way that at the transit between bridge/tunnel/covered roads and normal roads no more than two road ways connect. See also #4843.

ZeLonewolf commented 1 year ago

T-Junctions between normal and bridge/tunnel/covered roads are inherently ambiguous. It is therefore fairly broad consensus that roads should be mapped in a way that at the transit between bridge/tunnel/covered roads and normal roads no more than two road ways connect.

I did not understand what you meant in this comment. For the case of a covered road (ignoring bridge/tunnel situations), with no other tagging differences, it seems feasible that an uncovered way might intersect a covered way with a T or 4-way intersection and I don't see the ambiguity.

imagico commented 1 year ago

This is not really a matter for this issue tracker (which is why it was just a side note) - but for a quick explanation - the ambiguity lies in the fact that:

https://www.openstreetmap.org/node/305070711 https://www.openstreetmap.org/node/322076394

are location both on roads with covered=yes and without - hence it is ambiguous if those locations are covered or not. While it is theoretically possible that the edge of the cover is directly at the junction, practically roads are almost never built this way. And even if that was the case here - it would still be unclear if you can walk Via Marina past the junction with Vicolo del Gigante fully under cover because formally the edge of the cover is directly in the middle of Via Marina.

dch0ph commented 1 year ago

I agree with @imagico that the unexpected results reflect confusing mapping rather than poor rendering. I can't visualise how covered Via Marina joins with uncovered Via del Foro. Where's the building doing the covering? The edge of the cover is needed for visual feedback.

I think mappers overuse highway = pedestrian. These are public spaces where vehicle access is restricted and not just "nice footways". So I suspect highway = pedestrian, access=no would be better tagged as highway=footway, tunnel = building_passage, access=no. Doesn't vicolo mean alley way? Overall I don't think we need access restrictions for highway = pedestrian since its purpose is to indicate a restricted road with public pedestrian access.