OpenStreetMap

Um den Nutzern unserer Open Source Routing Machine anständige Instruktionen liefern zu können, wollen wir Informationen zu Schildern an Autobahnausfahrten einbeziehen.

Es gibt zwei Tagging Varianten für Autobahnausfahrtsschilder:

  • Den exit_to= Tag, gesetzt auf der highway=motorway_junction node an der der Ausfahrtsweg abgeht. Diese Art des Taggings wurde hauptsächlich verwendet da der standard Mapnik Stil es recht gut aussehen lies.
  • Der neue destination= Tag auf dem Way der Ausfahrt.

Warum brauchen wir zwei grundweg unterschiedliche Tagging Varianten? Hier ist ein Beispiel für eine fortfahrende Autobahn und eine Ausfahrt:

a . . . b . . d .
          ` . c .

Hier kann der exit_to Tag auf der node b zusammen mit dem highway=motorway_junction Tag gesetzt werden. Soweit so gut. Was passiert nun aber bei mehreren Ausfahrten die sich alle an einer einzelnen node auftrennen?

            . c
a . . . b `
          ` . d

Hier wollen wir Ausfahrtsinformationen für bc als auch bd setzen. Dafür gibt es Workarounds wie exit_to:left und exit_to:right, die aber schon bei gering komplexeren Situationen versagen.

Für genau diese Fälle ist der destination Tag die bessere Alternative.

Hier ist ein Beispiel wo ein solcher Workaround verwendet wird.

Mapillary View

Foto von Mapillary user andrewsnow lizenziert CC BY-SA 4.0.

Die Open Source Routing Machine unterstützt destination Tags bereits seit einer Zeit. Um exit_to Tags auf nodes zu unterstützen müssten wir das Strassennetz zuerst aufbauen um dann die Wege zu suchen, für die die Schilder zutreffen.

Wir haben das selbe Problem mit Stop Schildern ohne direction Tag: wir müssten die nächste Kreuzung finden zu der das Stopschild gehört um dann die Abbiegevorgänge zu bestrafen. Aber um die nächste Kreuzung finden zu können brauchen wir bereits das Strassennetz. Diese Annahmen sind grundweg inkompatibel mit den Techniken welche die Routing Engine verwendet um hoch-performant und skalierend OpenStreetMap Daten zu parsen.

Leider ist der exit_to node Tag immer noch sehr verbreitet. Vor allem in den USA. Siehe Bay Area:

exit_to

Verglichen dazu: der destination way Tag:

destination

Damit ist klar, wir müssen beide Tagging Varianten unterstützen.

Aus den Grund habe ich ein Tool geschrieben, welches exit_to node Tags zu destination way Tags umschreibt wenn es eindeutig möglich ist.

https://github.com/mapbox/rewrite-exit-destination-signage

Dabei versteht es Situationen wie Ausfahrten in einer Richtung, bereits vorhandene destination Tags, und andere Grenzfälle. Korrektheit ist dabei das primäre Ziel.

Für die Bay Area kann das Tool etwa 800 destination Tags in wenigen Sekunden hinzufügen. Ein brauchbares pre-processing Tool also das die Navigation für Autobahnen mit der Open Source Routing Machine benutzerfreundlicher macht!

Hier sind die Wiki Seiten der Tags:

Hier ist der Open Source Routing Machine v5.6 Release zum selbst ausprobieren.

Discussion

Log in to leave a comment