User:Bwurst/Kreuzungsrelationen

From OpenStreetMap Wiki
Jump to navigation Jump to search

Insbesondere bei Autobahnkreuzen oder ähnlichen Konstruktionen können bisher folgende drei Eigenschaften nicht eindeutig eingegeben werden:

  • Fahranweisung ("links halten", "rechts halten" im Gegensatz zu z.B. "links abbiegen")
  • Zahl der Spuren in die jeweilige Richtung
  • Auf den Schildern angegebenes Ziel

Die Fahranweisung kann oftmals aus den Winkeln der Straßen zueinander errechnet werden, jedoch nicht immer und manchmal weicht der subjektive Eindruck von der automatisch errechneten Richtungsangabe ab.

Die Zahl der Spuren kann bisher zwar an eine Fahrbahn angehängt werden, die bildet jedoch oft nicht die Situation an der Abzweigstelle ab.

Ein wichtiges Hinweis-Merkmal bei der Orientierung auf Autobahnen sind die angegebenen Fernziele für die unterschiedlichen Richtungen. Hier sollte die Stadt, die auf dem Schild ganz oben steht, erfasst werden, damit Navigations-Anweisungen diese einschließen können.

FIXME: Ein ungelöstes Problem stellen bisher kombinierte Spuren dar. Die Situation, dass eine Strecke 3-spurig ist, wovon zwei gradeaus gehen, aber auch zwei abzweigen (die mittlere Spur ist dann doppelt genutzt), ist damit nicht richtig abbildbar.


Vorschlag

Mein Vorschlag bezieht sich darauf, einzelne Relationen für ausschließlich diese drei Zwecke einzuführen, die in sich klein und übersichtlich sind, deren Aufwand zur Erfassung gering ist und die auf einfachste Weise maschinenlesbar sind.

Formale Definition

Die Relation ist vom typ direction (engl. für Anweisung) und enthält drei Objekte: Die Strecke vor der Abzweigung (role=from), die Strecke danach (role=to) und den Knotenpunkt an der sich die Strecken aufteilen (role=at). Eine Relation enthält genau einen Abbiegevorgang.

Folgende Eigenschaften sollte solch eine Relation haben:

direction = [ right | left | keep_right | keep_left | half_right | half_left | sharp_right | sharp_left | exit_right | exit_left | straight ]
lanes = [ 1 | 2 | 3 ... ]
destination = Freitext, Angabe der Stadt, die an dieser Kreuzung für diese Richtung hauptsächlich ausgeschildert ist

Bei den Richtungsangaben ist auf Autobahnen i.d.R. keep_* oder exit_* zu verwenden, bei richtigen Kreuzungen sollte left oder right bevorzugt werden. Die Präzisierungen half_* und sharp_* können bei Komplexen Kreuzungen hilfreich sein. straight soll verwendet werden, wo man geradeaus fahren muss obwohl man aufgrund der örtlichen Gegebenheiten mit einer Anweisung vom Navi rechnet. Das kann bei einer abknickenden Vorfahrtstraße passieren oder wenn auf der Autobahn die Haupt-Fahrstreifen abzweigen und man daher trotz eines Wechsels der Autobahn keine Aktion ausführen muss (siehe Beispiel unten).


Beispiel

Unten ist eine Abbildung der OSM-Karte vom Kreuz Stuttgart mit einigen Markierungen für nachfolgende Beispiele. Das Kreuz besteht aus A8 (Nordwest/Südost-Richtung), A81 (Süd-West) und A831 (Nord-Ost).

Disclaimer: Ich kenne das Kreuz nur von ein paar Durchfahrten. Es mag sein, dass meine Darstellung nicht korrekt ist, die örtlichen Mapper mögen es verzeihen oder korrigieren.

Disclaimer 2: Mein Beispiel ist nicht vollständig. Ich wollte nur ein paar Durchfahrtmöglichkeiten exemplarisch darstellen.

Mein untenstehendes Beispiel baut auf folgenden Annahmen auf:

  • Von der A81 kommend, geht der Haupt-Verkehrsfluss Richtung Nort-West, da dort die A81 ein Stück weit auf der A8 weiter geführt wird. Daher ist dieser Fahrtweg als "geradeaus" markiert, da man dort nichts unternehmen muss, die normalen Fahrspuren werden auf die A8 Richtung Karlsruhe geleitet. Konsequenterweise ist für diese Richtung auch "Heilbronn" als Richtung auf den Schildern angegeben.
  • Alle anderen Fahrtwege (außer dem normalen Durchfahren der A8) sind einspurig
  • Für die Member der Relationen setze ich die Zahlen vom Bild ein. Der Node ist nicht weiter beachtet.


Junction Kreuz stuttgart.png

 from=1
 to=2
 at=[node]
 type=direction
 lanes=1
 direction=exit
 destination=A81


 from=2
 to=3
 at=[node]
 type=direction
 lanes=1
 direction=keep_right
 destination=Singen


 from=4
 to=5
 at=[node]
 type=direction
 lanes=2
 direction=straight
 destination=Heilbronn


 from=5
 to=6
 at=[node]
 type=direction
 lanes=1
 direction=keep_right
 destination=München


 from=5
 to=7
 at=[node]
 type=direction
 lanes=2
 direction=straight
 destination=Heilbronn