[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