Opened 6 years ago
Last modified 4 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?
- tag lone railway=level_crossing node (validator complains that it should be on the way)
- create highway=residential way, join railway=level_crossing node to it
- 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)
Change History (20)
comment:1 by , 5 years ago
follow-up: 3 comment:2 by , 5 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.
follow-up: 5 comment:3 by , 5 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 , 5 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
comment:5 by , 5 years ago
comment:7 by , 4 years ago
Keywords: | level crossing added; level_crossing removed |
---|
follow-up: 10 comment:8 by , 4 years ago
So a node that has railway=level_crossing MUST have a railway=* way AND a highway=* way connected to it?
comment:9 by , 4 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=*
follow-up: 11 comment:10 by , 4 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.
follow-up: 14 comment:11 by , 4 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 , 4 years ago
Attachment: | crossing_examples.osm added |
---|
test file with examples; best to use with FixmeAndNote style
comment:13 by , 4 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.
comment:14 by , 4 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 forrailway=[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.
follow-up: 16 comment:15 by , 4 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.
follow-up: 17 comment:16 by , 4 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?
comment:17 by , 4 years ago
comment:18 by , 4 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.
So, do we just need to import the corresponding osmose test?