Opened 9 months ago
Last modified 9 months ago
#23601 new enhancement
Warn about incorrectly connected highway with man_made=bridge or man_made=tunnel and different layer values
Reported by: | skyper | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Core validator | Version: | |
Keywords: | layer connected highway man_made bridge tunnel | Cc: |
Description
Copied from 9304#comment:21:
In the German forum a different (but real world) case regarding man_made=bridge was mentioned:
https://community.openstreetmap.org/t/bruckenproblem-oder-doch-nicht/111282
Copied from 9304#comment:26:
Well, highways should only start or end at the node sharing with the
man_made=bridge
and the highway on the bridge (inside the area) should have the same layer value.
Same is true for man_made=tunnel
.
So we have two cases:
- A highway sharing a middle node with a man_made bridge or tunnel seems to be an error in most (all) cases.
- A highway sharing a start or end node with man_made bridge or tunnel and inside the area of the man_made needs the identical
layer=*
and abridge=*
resp.tunnel=*
(not valueno
)
Attachments (1)
Change History (6)
comment:1 by , 9 months ago
comment:2 by , 9 months ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:3 by , 9 months ago
Looking at the George Washington Bridge https://www.osm.org/way/392759062 I see a lot of highways inside the area but with different layer. I see four layers from -1 to 2. According to the wiki about man_made=bridge " the key layer=* should now contain the lowest number of all the features on the bridge", so according to this those highways should have layers from 1 to 4 or maybe fever different levels.
The big question is: How can we compute that a feature is on the bridge and not below or maybe even above on a different higher bridge?
What about those ways completely inside the man_made=bridge area which are not connected to it like https://www.osm.org/way/8028081.
The test has to find out if this way can be below the bridge or not.
See e.g. this cycleway: https://www.osm.org/way/1145222866
It is not connected to the man_made=bridge but to a way inside which is still on layer 0: https://www.osm.org/way/46593261
Only when I follow that way to way 46593991 I can be rather sure that the previous ways are on the bridge.
Another point not mentioned in the ticket: What about missing connections? If we can detects (parts of) ways to be on the bridge we could also flag ways like https://www.osm.org/way/124083386 as it is not connected to the man_made=bridge way (and not split at that connection point).
If we implement this test I wonder what the warning messages could be. I don't like the idea that someone starts to change all kinds of layer tags or possibly corrupts routing where maybe only the man_made=bridge object is wrong.
comment:4 by , 9 months ago
Owner: | changed from | to
---|---|
Status: | assigned → new |
I thought about this for a while and I have no idea how to implement a test for this with less than maybe 100 lines and in my eyes that's for sure too much complex code for a minor problem like this. Complex bridges like the George Washington Bridge or Köhlbrandbrücke in Hamburg https://www.osm.org/way/536703976 are connected to many objects and I've no clue how to maintain white lists here.
I'd rather close this a wontfix.
comment:5 by , 9 months ago
Ok, lets step back and have a look at some simple and obvious cases. Maybe some could be even written in MapCSS.
- a high-, rail-, waterway way which crosses completely or crosses at one side and has start/end node sharing with an area
man_made=bridge
orman_made=tunnel
:- with one node in common
- should share non or two nodes
- with more than one node in common and different
layer=*
(including one without the key)- either both objects should have the identical value or they should not share nodes
- with one node in common
- a high-, rail-, waterway way which shares both start and end node with an area
man_made=bridge
orman_made=tunnel
(and is inside the area) should have the identical layer value.
As a start I'll collect test cases so that we agree about what should be flagged.