#9141 closed enhancement (fixed)
detect nodes with missing highway=crossing
Reported by: | mkoniecz | Owned by: | team |
---|---|---|---|
Priority: | normal | Milestone: | 13.12 |
Component: | Core validator | Version: | |
Keywords: | Cc: |
Description
definitions
A - node that may be left by pedestrians in at least two directions. Naive check for eligible ways: highway=footway or highway=path or (highway=cycleway and (foot=yes or foot=designed))
B - node that may be left by cyclists in at least two directions. Naive check for eligible ways: highway=cycleway or ((highway=path or highway=footway) and (bicycle=yes or bicycle=designed))
C - node that may be left by cars in two directions. Naive check: (highway=residential or highway=unclassified or highway=primary or highway=secondary or highway=tertiary or highway=trunk (...))
Any node with ((A or B) AND C AND without highway=crossing AND without crossing=no) should be reported as "highway=crossing or crossing=no is probably missing".
Attachments (1)
Change History (24)
by , 11 years ago
Attachment: | Przechwytywanie.PNG added |
---|
comment:3 by , 11 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
- The code does not work with highway=traffic_signal and crossing=*
- what about railways ?
comment:4 by , 11 years ago
I'm leaving today for 3 weeks in USA, I'll look into it after, if nobody fixes it before :)
comment:5 by , 11 years ago
Interesting, I like that this is taken care of in some way. But isn't a node connecting a way for pedestrians and a way for cars (as defined in the bug description) enough of a clue that it is a crossing? What if it is not marked on the road in reality? What else can it be if it is not a crossing? If there is no crossing, the ways would not meet in a shared node and probably be in different layers. Are there any guidelines on this?
follow-up: 10 comment:6 by , 11 years ago
This test is too strict. Do we really need crossing=unmarked
on every service way without any sidewalk nor kerb ?
Would prefer to downgrade it to an info in cases where only three ways connect and when paths only connect from one side like in curves.
follow-up: 15 comment:7 by , 11 years ago
A driveway crossing over a sidewalk does not make the sidewalk point a highway=crossing, don't you think? Drivers turning onto the driveway are crossing a sidewalk, not a pedestrian crossing. Like this node http://www.openstreetmap.org/?node=714087855 as seen here http://goo.gl/maps/lO8iv
comment:8 by , 11 years ago
Detecting driveways is simple, just look for service=driveway.
IMHO it would count as highway=crossing. "Crossing infrastructure for the convenience of pedestrians, cyclists etc. should first be tagged with highway=crossing" is a bit tricky as this type of construction is for convenience of both pedestrians (etc) and drivers.
For related discussion about driveways and highway=crossing look at http://wiki.openstreetmap.org/wiki/Talk:Key:crossing#Proposal:_crossing_ref.3Ddriveway
Also, in http://josm.openstreetmap.de/ticket/9245 I suggested detecting reverse situation - unneeded crossings.
follow-up: 11 comment:10 by , 11 years ago
Replying to skyper:
This test is too strict. Do we really need
crossing=unmarked
on every service way without any sidewalk nor kerb ?
In 6378: The problem is, that the validator still reports "Missing crossing information" if you use crossing=unmarked (At least when highway=unclassified is crossing a highway=cycleway). I think all crossing=* (except of crossing=unknown) should always satisfy this test.
follow-up: 12 comment:11 by , 11 years ago
Replying to mdk:
Replying to skyper:
This test is too strict. Do we really need
crossing=unmarked
on every service way without any sidewalk nor kerb ?
In 6378: The problem is, that the validator still reports "Missing crossing information" if you use crossing=unmarked (At least when highway=unclassified is crossing a highway=cycleway). I think all crossing=* (except of crossing=unknown) should always satisfy this test.
Why highway=crossing tag should be omitted in this case?
follow-up: 13 comment:12 by , 11 years ago
Replying to Bulwersator:
Replying to mdk:
Replying to skyper:
This test is too strict. Do we really need
crossing=unmarked
on every service way without any sidewalk nor kerb ?
In 6378: The problem is, that the validator still reports "Missing crossing information" if you use crossing=unmarked (At least when highway=unclassified is crossing a highway=cycleway). I think all crossing=* (except of crossing=unknown) should always satisfy this test.
Why highway=crossing tag should be omitted in this case?
Sorry, I was not precise enough: It is a combined cycleway and footway (highway=cycleway & foot=yes) not segregated.
btw: I'm a little bit confused about how to tag such a way. I found so many opinions ...
I tried a little bit: Validator is reporting a crossing between highway=unclassified and highway=cycleway always as "Missing crossing information" (with or without foot=yes), so this would be an error
follow-up: 14 comment:13 by , 11 years ago
Replying to mdk:
Replying to Bulwersator:
Replying to mdk:
Replying to skyper:
This test is too strict. Do we really need
crossing=unmarked
on every service way without any sidewalk nor kerb ?
In 6378: The problem is, that the validator still reports "Missing crossing information" if you use crossing=unmarked (At least when highway=unclassified is crossing a highway=cycleway). I think all crossing=* (except of crossing=unknown) should always satisfy this test.
Why highway=crossing tag should be omitted in this case?
Sorry, I was not precise enough: It is a combined cycleway and footway (highway=cycleway & foot=yes) not segregated.
I tried a little bit: Validator is reporting a crossing between highway=unclassified and highway=cycleway always as "Missing crossing information" (with or without foot=yes), so this would be an error
I tag such locations as highway=crossing (including cyclist only crossings that I tag as highway=crossing, bicycle=yes, foot=no). I added suggestion on wiki to document this usage ( see http://wiki.openstreetmap.org/wiki/Talk:Key:crossing#Add_an_example_with_cyclist_only_crossing ).
btw: I'm a little bit confused about how to tag such a way. I found so many opinions ...
I ended with highway=path, bicycle=designated/yes, foot=designated/yes as at least highway=path, foot=designated, bicycle=designated is rendered by JOSM. And it was declared as a proper scheme in my country (Poland).
comment:14 by , 11 years ago
Replying to Bulwersator:
Replying to mdk:
Replying to Bulwersator:
Replying to mdk:
Replying to skyper:
This test is too strict. Do we really need
crossing=unmarked
on every service way without any sidewalk nor kerb ?
In 6378: The problem is, that the validator still reports "Missing crossing information" if you use crossing=unmarked (At least when highway=unclassified is crossing a highway=cycleway). I think all crossing=* (except of crossing=unknown) should always satisfy this test.
Why highway=crossing tag should be omitted in this case?
Sorry, I was not precise enough: It is a combined cycleway and footway (highway=cycleway & foot=yes) not segregated.
I would always tag a combined way with highway=path. In your case probably bicycle and foot designated.
I tried a little bit: Validator is reporting a crossing between highway=unclassified and highway=cycleway always as "Missing crossing information" (with or without foot=yes), so this would be an error
I tag such locations as highway=crossing (including cyclist only crossings that I tag as highway=crossing, bicycle=yes, foot=no). I added suggestion on wiki to document this usage ( see osmwiki:Talk:Key:crossing#Add_an_example_with_cyclist_only_crossing ).
Thought we use a subtag of the highway value: path=crossing/sidewalk
For a bicycle only crossing I would use designated and not only "yes". I like crossing_ref=driveway.
btw: I'm a little bit confused about how to tag such a way. I found so many opinions ...
I ended with highway=path, bicycle=designated/yes, foot=designated/yes as at least highway=path, foot=designated, bicycle=designated is rendered by JOSM. And it was declared as a proper scheme in my country (Poland).
But this is all off topic:
- We need a highway=* with crossing=*
- So far you get a warning about highway!=crossing and crossing=* which is wrong.
comment:15 by , 11 years ago
Replying to anonymous:
A driveway crossing over a sidewalk does not make the sidewalk point a highway=crossing, don't you think? Drivers turning onto the driveway are crossing a sidewalk, not a pedestrian crossing. Like this node http://www.openstreetmap.org/?node=714087855 as seen here http://goo.gl/maps/lO8iv
I totally agree. We need a way to distinguish between an highway crossing a footway and a footway crossing a highway. Until now I assumed that an untagged crossing of a footway and a highway was in fact a highway crossing a footway since you cannot tag tat otherwise. I find it rather odd to make missing crossings an error when there is no possibility yet to correctly mark a vast part of "crossings".
follow-up: 18 comment:16 by , 11 years ago
I'd consider the current warning "Missing crossing information" (this text is sometimes really confusing) as Severity.OTHER
and re-word it to "Missing pedestrian crossing information":
-
src/org/openstreetmap/josm/data/validation/tests/Highways.java
diff --git a/src/org/openstreetmap/josm/data/validation/tests/Highways.java b/src/org/openstreetmap/josm/data/validation/tests/Highways.java index 1283184..8686c61 100644
a b public class Highways extends Test { 144 144 handleCarWay(n, w); 145 145 } 146 146 if ((leftByPedestrians || leftByCyclists) && leftByCars) { 147 errors.add(new TestError(this, Severity. WARNING, tr("Missing crossing information"), MISSING_PEDESTRIAN_CROSSING, n));147 errors.add(new TestError(this, Severity.OTHER, tr("Missing pedestrian crossing information"), MISSING_PEDESTRIAN_CROSSING, n));^M 148 148 return; 149 149 } 150 150 }
comment:18 by , 11 years ago
This patch will produce wrong messages for crossings with cyclists, this code should be something like this:
handleCarWay(n, w); } if ((leftByPedestrians && leftByCyclists) && leftByCars) { errors.add(new TestError(this, Severity.OTHER, tr("Missing pedestrian and cyclist crossing information"), MISSING_PEDESTRIAN_CROSSING, n)); return; } else if (leftByPedestrians && leftByCars) { errors.add(new TestError(this, Severity.OTHER, tr("Missing pedestrian crossing information"), MISSING_PEDESTRIAN_CROSSING, n)); return; } else if (leftByCyclists && leftByCars) { errors.add(new TestError(this, Severity.OTHER, tr("Missing cyclist crossing information"), MISSING_PEDESTRIAN_CROSSING, n)); return; } }
Sorry for not formatting this as a patch.
follow-up: 21 comment:20 by , 9 years ago
Is there any open case left?
I hadn't found any problems since a long time!
comment:21 by , 9 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
comment:22 by , 8 years ago
Milestone: | → 13.12 (6502) |
---|
example of node that should has highway=crossing tag. JOSM validator is failing to detect anything suspicious.