Modify

Opened 7 years ago

Closed 5 years ago

Last modified 3 years ago

#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)

Przechwytywanie.PNG (16.1 KB) - added by mkoniecz 7 years ago.
example of node that should has highway=crossing tag. JOSM validator is failing to detect anything suspicious.

Download all attachments as: .zip

Change History (24)

Changed 7 years ago by mkoniecz

Attachment: Przechwytywanie.PNG added

example of node that should has highway=crossing tag. JOSM validator is failing to detect anything suspicious.

comment:1 Changed 7 years ago by Don-vip

Resolution: fixed
Status: newclosed

In 6303/josm:

fix #9141 - new validator test: detect nodes with missing highway=crossing

comment:2 Changed 7 years ago by Don-vip

Thanks for the pseudo-code !

comment:3 Changed 7 years ago by skyper

Resolution: fixed
Status: closedreopened
  • The code does not work with highway=traffic_signal and crossing=*
  • what about railways ?

comment:4 Changed 7 years ago by Don-vip

I'm leaving today for 3 weeks in USA, I'll look into it after, if nobody fixes it before :)

comment:5 Changed 7 years ago by aceman

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?

comment:6 Changed 7 years ago by skyper

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.

comment:7 Changed 7 years ago by 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

comment:8 Changed 7 years ago by mkoniecz

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.

comment:9 Changed 7 years ago by Don-vip

In 6368/josm:

see #9141 - validator: Remove service and road support for missing crossing on highway for next release at least

comment:10 in reply to:  6 ; Changed 7 years ago by 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.

comment:11 in reply to:  10 ; Changed 7 years ago by mkoniecz

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?

comment:12 in reply to:  11 ; Changed 7 years ago by 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.

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

Last edited 7 years ago by mdk (previous) (diff)

comment:13 in reply to:  12 ; Changed 7 years ago by mkoniecz

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).

Last edited 7 years ago by mkoniecz (previous) (diff)

comment:14 in reply to:  13 Changed 7 years ago by skyper

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:

  1. We need a highway=* with crossing=*
  2. So far you get a warning about highway!=crossing and crossing=* which is wrong.

comment:15 in reply to:  7 Changed 7 years ago by josm@…

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".

comment:16 Changed 7 years ago by simon04

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 { 
    144144                    handleCarWay(n, w);
    145145                }
    146146                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
    148148                    return;
    149149                }
    150150            }

comment:17 Changed 7 years ago by Don-vip

In 6434/josm:

see #9141 - adapt severity and wording

comment:18 in reply to:  16 Changed 7 years ago by mkoniecz

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.

Last edited 7 years ago by mkoniecz (previous) (diff)

comment:19 Changed 7 years ago by Don-vip

Ticket #9386 has been marked as a duplicate of this ticket.

comment:20 Changed 5 years ago by mdk

Is there any open case left?

I hadn't found any problems since a long time!

comment:21 in reply to:  20 Changed 5 years ago by Klumbumbus

Resolution: fixed
Status: reopenedclosed

Replying to mdk:

Is there any open case left?

seems not

comment:22 Changed 5 years ago by Don-vip

Milestone: 13.12 (6502)

comment:23 Changed 3 years ago by stoecker

Milestone: 13.12 (6502)13.12

Milestone renamed

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.