Modify

Opened 5 years ago

Last modified 3 years ago

#17074 new enhancement

detect railway=level_crossing nodes that are not on crossing of railway=* and highway=* ways

Reported by: mkoniecz Owned by: team
Priority: normal Milestone:
Component: Core validator Version:
Keywords: template_report railway level crossing Cc:

Description

What steps will reproduce the problem?

  1. tag lone railway=level_crossing node (validator complains that it should be on the way)
  2. create highway=residential way, join railway=level_crossing node to it
  3. run validator

What is the expected result?

Validator complains about missing railway=* way (or about missing highway=* way if it is on railway=* way without crossing with any highway=* way)

What happens instead?

No complaints.

Please provide any additional information below. Attach a screenshot if possible.

Implemented in Osmose - see http://osmose.openstreetmap.fr/en/map/#zoom=10&lat=50.0337&lon=20.122&item=7090&level=1%2C2%2C3&tags=&fixable=

URL:https://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-12-04 01:45:45 +0100 (Tue, 04 Dec 2018)
Build-Date:2018-12-04 02:32:21
Revision:14507
Relative:URL: ^/trunk

Identification: JOSM/1.5 (14507 en) Linux Ubuntu 16.04.5 LTS
Memory Usage: 508 MB / 869 MB (287 MB allocated, but free)
Java version: 1.8.0_191-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: :0.0 1920x1080
Maximum Screen Size: 1920x1080
Dataset consistency test: No problems found

Plugins:
+ OpeningHoursEditor (34535)
+ buildings_tools (34724)
+ continuosDownload (82)
+ imagery_offset_db (34641)
+ measurement (34529)
+ reverter (34552)
+ todo (30306)

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.

Attachments (2)

17074.patch (1.6 KB ) - added by reichg 3 years ago.
this checks 2 scenarios:
crossing_examples.osm (23.5 KB ) - added by skyper 3 years ago.
test file with examples; best to use with FixmeAndNote style

Download all attachments as: .zip

Change History (20)

comment:1 by skyper, 4 years ago

So, do we just need to import the corresponding osmose test?

comment:2 by Klumbumbus, 4 years ago

Sometimes the railway was razed but at that short section where it crossed the road the rails were kept. This would be a correct tagging of a railway crossing without a railway attached.

in reply to:  2 ; comment:3 by skyper, 4 years ago

Replying to Klumbumbus:

Sometimes the railway was razed but at that short section where it crossed the road the rails were kept. This would be a correct tagging of a railway crossing without a railway attached.

We do not support railway=razed, though I still think it is an mistake and a short way with railway=abandoned should stay as parent.

Still means that we need to write our own rules.

comment:4 by mkoniecz, 4 years ago

Sometimes the railway was razed but at that short section where it crossed the road the rails were kept. This would be a correct tagging of a railway crossing without a railway attached.

In this case short section of rails across road is still mappable

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

in reply to:  3 comment:5 by Klumbumbus, 4 years ago

Replying to skyper:

a short way with railway=abandoned should stay as parent.

Replying to mkoniecz:

short section of rails across road is still mappable

OK, convinced.

comment:6 by skyper, 3 years ago

Keywords: railway level_crossing added

Duplicate of #9297?

comment:7 by skyper, 3 years ago

Keywords: level crossing added; level_crossing removed

comment:8 by reichg, 3 years ago

So a node that has railway=level_crossing MUST have a railway=* way AND a highway=* way connected to it?

by reichg, 3 years ago

Attachment: 17074.patch added

this checks 2 scenarios:

comment:9 by reichg, 3 years ago

17074.patch covers 2 scenarios:

1) node with railway=level_crossing tag that is connected to a way with railroad=* but not a way with highway=*
2) node with railway=level_crossing tag that is connected to a way with highway=* but not a way with railroad=*

Last edited 3 years ago by reichg (previous) (diff)

in reply to:  8 ; comment:10 by skyper, 3 years ago

Replying to reichg:

So a node that has railway=level_crossing MUST have a railway=* way AND a highway=* way connected to it?

It is much more complex. The current test for missing railway=crossing produces a lot of false positives where a different warning is needed. Even the java test for needed highway=crossing produces false positives.

In my opinion, sides resp. angles need to be taken into account as we need different warnings for touching ways or two ways only on one side. For sure we need to check for end nodes or middle nodes as ways may start/end at the intersection. Take a look at my examples (with FixmeAndNote style).

Probably, this is not possible with mapcss and needs own java code.

Last edited 3 years ago by skyper (previous) (diff)

in reply to:  10 ; comment:11 by skyper, 3 years ago

Replying to skyper:

Even the java test for needed highway=crossing produces false positives.

Wait a minute, this is correct for highway=crossing but would not be correct for railway=[level_]crossing

In my opinion, sides resp. angles need to be taken into account as we need different warnings for touching ways or two ways only on one side. For sure we need to check for end nodes or middle nodes as ways may start/end at the intersection. Take a look at my examples (with FixmeAndNote style).

Oh, I missed the example of two touching road resp. railway with the other kind in the middle (could still be two ways ending at the common node).

by skyper, 3 years ago

Attachment: crossing_examples.osm added

test file with examples; best to use with FixmeAndNote style

comment:12 by skyper, 3 years ago

I have updated the test file.

comment:13 by skyper, 3 years ago

And I totally forgot to mention, that check for incorrect crossing and/or incorrect connection should only be run within the download area to make sure the data is not incomplete and all connected ways are downloaded.

Last edited 3 years ago by skyper (previous) (diff)

in reply to:  11 comment:14 by reichg, 3 years ago

Replying to skyper:

Replying to skyper:

Even the java test for needed highway=crossing produces false positives.

Wait a minute, this is correct for highway=crossing but would not be correct for railway=[level_]crossing

In my opinion, sides resp. angles need to be taken into account as we need different warnings for touching ways or two ways only on one side. For sure we need to check for end nodes or middle nodes as ways may start/end at the intersection. Take a look at my examples (with FixmeAndNote style).

Oh, I missed the example of two touching road resp. railway with the other kind in the middle (could still be two ways ending at the common node).

I think I understand what you are saying about the angles. Just need a way to determine if ways are on same side of railroad or not? if a way meets the railway but there is no crossing then I would assume no tag on the node. This shouldn't be too hard to do in java. Just need a function to check if a way(s) completely cross the railroad. Once that is added this validation will be better.

Last edited 3 years ago by reichg (previous) (diff)

comment:15 by skyper, 3 years ago

Note, my example is still not perfect as angles can easily grow beyond 180° with a curve at the intersection.
ford=* with highways is similar, see #18375.

in reply to:  15 ; comment:16 by reichg, 3 years ago

Replying to skyper:

Note, my example is still not perfect as angles can easily grow beyond 180° with a curve at the intersection.
ford=* with highways is similar, see #18375.

The point is to just capture if there is some sort of crossing over the railway right? That is what you are trying to get at with the angle?

in reply to:  16 comment:17 by skyper, 3 years ago

Replying to reichg:

The point is to just capture if there is some sort of crossing over the railway right? That is what you are trying to get at with the angle?

Yes, some crossing, with a way beyond and on the other side of the railway (or waterway regarding #18375).

Last edited 3 years ago by skyper (previous) (diff)

comment:18 by skyper, 3 years ago

All other situations are worth a warning with or without railway=[level_]crossing and the "real" crossings need a check for the presence of one of these two tags.

Last edited 3 years ago by skyper (previous) (diff)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set. Next status will be 'closed'.
to The owner will be changed from team to the specified user.
Next status will be 'needinfo'. The owner will be changed from team to mkoniecz.
as duplicate The resolution will be set to duplicate. Next status will be 'closed'. The specified ticket will be cross-referenced with this ticket.
The owner will be changed from team to anonymous. Next status will be 'assigned'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.