[Tagging] complete tagging of all 'right of way'-cases
ruben at vfn-nrw.de
Thu May 10 12:57:11 UTC 2018
# Motivation and Context
I'm pretty long active in this project. I came across many times a
detail of our street infrastructure, which is currently
underrepresented in our data: The right of way.
This is somewhat important for routers for estimation of travel time,
but really important for getting knowledge for live turn-to-turn
navigation, based on our data, since often an audible direction isn't
necessary, if just the main-road does a curve.
I guess it's currently often extrapolated from the highway tag, e.g. a
tertiary is assumed to be the main road while residential roads are
expected to be a "turn" which needs to be mentioned to the driver.
# Currently approved tagging
Stop signs are currently tagged at the position of the stop line, as a
node on the way with the direction of traffic flow - which needs to be
Yield signs are tagged the same way stop signs are tagged.
first come, first serve - 4-way-stops (USA):
Those are tagged with a tag on the intersection-node and a stop=all.
a priority road:
There's a tag called priority_road=designated which is used to tag a
way which is then considered as a priority road. Stop and yield signs
are then tagged additionally in the roads which lead to this way.
# Problems with the current approaches
The yield/stop signs added to the road as nodes are hard to parse,
since the router/parser need to match them to the next intersection.
The priority_road=designated is hardly used at all (just 21 900
worldwide) which makes me wonder if this tag designed very well.
There is no tag for intersections with right-before-left or
left-before-right right of way.
The tagging of one way with priority_road and nodes on the other way,
adding give_way or stop signs lead to redundant data.
Currently, I hardly tag this feature, like most mappers, because it's
pretty cumbersome to take pictures of that information, verify the exact
location on the intersection on an aerial picture and pinpoint it with a
give_way/stop node, while this gives no advantage, 'cause it's not
processed by anyone at the moment.
# Relation approach
There is a proposal in a draft state which add a similar functionality
like the restriction relations to add the exact right of way to
intersections with a priority-road and stop/give_way streets:
While I don't think there's a reason to add those relations to any
roundabout/mini_roundabout. But this proposal makes sense on circular
junctions which have currently no definition of the right of way by the
junction tag alone.
The circular junction is sometimes used in Germany for junctions which
has no "roundabout" signs but yield signs to apply pretty much the same
rules like on a roundabout. It also might have traffic lights. So a
give_way relation could help to make define the right-of-way in
# currently missing: priority road by road design
A lowered curb at a street on an intersection makes this road to yield,
without the need for a sign (in Germany)
I think we should tag this separately since there are no signs
involved. I have currently no idea how to tag this.
# currently missing: right-before-left/left-before-right
Since there is no tag for this, I guess it's reasonable to define one
the same way as for 4-way-stops. I think highway=give_way and
give_way=all or default (analog to maxheight) makes the most sense
(currently give_way=all is used 3 times worldwide).
If right-before-left or left-before-right should be decided by the
national boundary, not on any intersecting node.
# currently missing: a traffic light with its right-of-way definition
There are 3 types of this in Germany: Stop signs and priority road,
give_way and priority road and no signs (right-before-left). Since
traffic lights are off overnight on many locations, this might not
have a high priority, but it's also nice to have in the database.
# Rationality for this discussion
I'm using StreetComplete for much mobile mapping and it's actually
awesome to add many small details on the go without taking pictures,
open them in JOSM etc. what I used to do beforehand.
StreetComplete is surly, not able to handle all complex intersections,
but it might be able to filter them, to just get the very easy to
extend ones, where just 2-4 way meet with one single node at the
But adding a functionality like this it needs to store the information
for each case, so a tag like priority_road=designated cannot be
implemented, since in the case it's not the priority_road, there's no
tag which can store this information in the database.
Since it's always nice to have a definitive answer stored in the
database, it would be better if we can agree on a solution which has
one for each case.
# Let's discuss
I would like to hear some other opinions on that topic, since the
current approach: Taking pictures and map that information at home
requires a huge amount of time, instead of a simple quest for
StreetComplete to change on the go.
More information about the Tagging