[Talk-de] Kreuzungsrelation, war: Re: Brainstorming zum OpenRouteService
Henry Loenwind
henry at loenwind.info
Di Jul 15 10:45:38 UTC 2008
Bernd Wurst wrote:
> Voll dafür. So lange mein proprietäres Navi mehr Infos über eine Kreuzung
> liefert als wir erfassen können, läuft was schief. :)
Das war auch bei mir der Auslöser mir diese Gedanken zu machen.
> Zu deinem Vorschlag vom letzten Mal:
> "rechts halten" und "links halten" sollte auch noch möglich sein, für den Fall
> wenn sich eine mehrspurige Straße teilt und es kein Abbiegen nach halb-rechts
> ist.
Jepp, hab ich drin.
Ebenso habe ich jetzt komplexere Kreuzungen vorgesehen, also welche, die
viele Nodes, Abbiegespuren, Überleitungen etc. haben. Ein Autobahnkreuz
läßt sich jetzt als eine Kreuzung beschreiben. Eine Kreuzung mit 6
Straßen, 9 Radwegen, 4 Fußgängertunneln und einem Zebrastreifen auch.
> Wichtig wäre IMHO, dass du das was du letztes mal geschrieben hast (plus das
> oben) in eine Wiki-Seite umformulierst. Ich wäre dein erster User dieser
> Relation.
Erst mal hier, da bekomm ich mehr Verrisse ...ähm... Feedback ;)
> Und für die Kritiker: Eine 08/15-Kreuzung, die das Navi auch korrekt aus den
> Daten interpretieren kann, muss man natürlich nicht so erfassen. Nur weil das
> letztes Mal gleich als das-ist-so-viel-Arbeit-Argument kam. :)
Genau. Hab ich jetzt auch oben reingechrieben.
So, hier der Entwurf. Ich muss nochmal nachschauen, ob ich "Crossing"
lasse, oder ob "Junction" o.ä. besser wäre.
=Advanced Crossing Relation
==General
The advanced crossing relation (ACR) is intended to describe all
possible transitions from one street to another that can happen at a
crossing. As such it is quite complicated, but it is not intended to
replace existing relations or tags, but to help model crossings that can
not be described correctly using these. So if a simple turn restriction
relation is enough for your crossing, just use that easier tun
restriction relation.
==About the model
The ACR sees a crossing as a number of ways that have exactly 2 ends and
a number of nodes that connect those ways. Any possible path then can be
describes as a series of ways and nodes, starting and ending with a way.
For any of those paths, the ACR describes how a human driving
(cycling/riding/walking/...) along it would experience it. Or, to name
the expected usage, what a satnav (a.k.a. GPS, a.k.a. navi) would have
to announce so the human would take that path.
==Type
The type of the relation is "ACR".
==Roles
All ways and nodes belonging to the crossing (that includes the ways
that only have one end at the crossing) are included in the relation
exactly once. Their tag must be an unique (within the relation) string
containing numbers and letter only. Please note that that is a
difference to other relations that have fixed role names.
==Tags
Every tag describes one path in the crossing, that may be a complete
path through the crossing, or just one step. Generally speaking one path
corresponds to one announcement of the satnav system.
===Tag Keys
Tag keys are constructed from the role names. Again here the ACR differs
from other relations that use fixed key names.
To construct the key, concatenate the role names of all parts of the
path, separated with an underscore ("_").
===Tag Values
The value describes the path. Possible values are:
no - this path cannot be taken (this is the default for all thinkable
paths that are not modeled).
auto - this path will be taken automatically by following the road. A
satnav does not need (nor should) announce anything.
straight - to take this path, you must go straight ahead, leaving the
road you're on.
right, left - turn right or left to take this path.
sharp right, sharp left - make a sharp turn. Use this only if you've
already have used up the right/left or if it would be difficult to
follow the satnav's directions with a simple left/right announcement.
half right, half left - see sharp
uturn - this is a u-turn at a position where it is allowed and possible.
Use this one for special u-turn lanes. The satnav should announce this
as a definite instruction.
possible uturn - here it is possible to turn, but there are no special
lanes or signs. The satnav should announce this with care, e.g. by
adding "if possible" to it's instruction. (Please note that a pedestrian
can always and everywhere do a u-turn. No need to model that...)
exit right, exit left - this is an exit from a motorway or trunk road,
or some construct that looks&feels the same.
right lane, left lane, center lane - here the driver has to chose the
right lane, that later will move away from the main body of the street.
No turning involved.
parallel lane - this is the special lane at large motorway crossings
that runs parallel to the main body and leads to the real exits. Hint:
To use such a crossing you'd need to follow "exit, exit" or "exit,
parallel, exit".
roundabout 1, roundabout 2, etc. - this is a path leading through a
roundabout, the number says which exit from the roundabout to the, e.g.
"leave the roundabout at the 3rd exit". As an exception to the rule that
all ways must have exactly two ends, a roundabout circle way does not
have to be cut into segments when using this value.
cross, cross at lights, cross at crossing - these are specials for
people that can cross a street (pedestrians, cyclists, riders). A satnav
should announce them like "cross the street at the traffic light".
right and cross, sharp left and cross at light, etc. - all of the
"cross" values can be appended with an "and" to the right/left values
defined above.
==Presets
While it puts a burden on the consuming software, and presets are
usually not liked in OSM, the ACR is so complex that it can take it.
Therefore there are exactly 2 presets, and none should be added in the
future, to not break existing data consumers.
===Preset 1 - X-Crossing
This is a simple crossing with exactly 4 ways. The roles of the ways
must be "1" through "4" (clockwise), the role of the single node must be
"to". Then a tag of "preset=x" will imply the following tags:
1_to_1=possible uturn
1_to_2=left
1_to_3=auto
1_to_4=right
(and so on)
===Preset 2 - T-Crossing
This is a simple crossing with exactly 3 ways. The roles of the ways
must be "1" through "3" (clockwise) with the "missing" way in position
4, the role of the single node must be "to". Then a tag of "preset=x"
will imply the following tags:
1_to_1=possible uturn
1_to_2=left
1_to_3=auto
2_to_2=possible uturn
2_to_3=left
2_to_1=right
3_to_3=possible uturn
3_to_2=right
3_to_1=auto
==Examples
tbd
Beispiele mache ich später, da muss ich Bilder dazumachen, sonst bringt
es nix.
PS: Fällt mir grade ein: Keine Verkehrmittelbeschränkung für die Pfade,
das richtet sich nach den Wegen, die drunterliegen.
cu
Henry
Mehr Informationen über die Mailingliste Talk-de