DE:Routenplanung

From OpenStreetMap Wiki
Jump to navigation Jump to search
Beispiel: Skobbler Navigation (eine Online-Punkt-zu-Punkt-Navigations-App für iOS).

Routenplanung bzw. die Routenberechnung (vom engl. "routing") ist ein Dienst oder eine Software, um effizient von einem Ort zu einem anderen zu navigieren. OpenStreetMap-Daten beinhalten Informationen, um in verschiedenen Modi wie z.B. mit dem Auto, zu Fuß, mit dem Fahrrad oder dem Pferd, Routen berechnen zu können. Es gibt viele verschiedene Routenplaner bzw. Navigationsdienste, die OpenStreetMap-Daten nutzen. Dabei gibt es Offline-Dienste (en) und Online-Dienste (en).

Für Entwickler gibt es auf dieser Seite einige Empfehlungen zu verfügbarer Navigationssoftware und Hinweise zur Softwareentwicklung von neuen Navigationsprogrammen und -lösungen. Außerdem wird detailliert auf den Zugriff von OpenStreetMap-Daten eingegangen, um bessere Navigationsengines entwickeln zu können. Unter anderem ist auch eine Mailing-Liste verfügbar.

Für Endbenutzer: Routenplaner

Siehe auch: Liste mit OSM-basierten Routenplanern


Kartografen: Verbesserung von Kartendaten

Damit ein Routenplaner bzw. eine Navigationssoftware einwandfrei funktionieren kann, sind qualitativ gute Kartendaten notwendig. Das bedeutet vor allem, dass Linien die verbunden sein sollen auch wirklich verbunden sind, Einbahnstraßen auch als solche eingezeichnet sind, Abbiegeverbote berücksichtigt wurden und so weiter. Du solltest mit den Kartenattributen und Grundelementen vertraut sein. Im Einzelnen kannst du z.B. unter OSM-Tags für die Routenplanung (en) nachsehen, um die Vorgehensweisen besser verstehen zu können.

Geschwindigkeitsangaben

Um bei der Routenplanung die "schnellste Route" berechnen zu können, sind Geschwindigkeitsangaben notwendig. Bitte achte bei der Erstellung von Straßen darauf, dass du die zulässige Höchstgeschwindigkeit mit dem maxspeed-Tag hinzufügst. Dies ist vor allem dann notwendig, wenn die vor Ort festgelegte zulässige Höchstgeschwindigkeit der Straße, von den in OSM gesetzten Standardwerten für deutsche Straßen (en) abweicht.

Entwickler

Desktop- und Serversoftware

Java:

  • openrouteservice, ist eine freie, open source Bibliothek in Java und eine API mit vielen Options und einem Ökosystem weiterer Tools und libs für Javascript, R, Python, QGIS etc. mit Isochronen, time-distance matrixes, accessibility und mehr.
  • OpenTripPlanner (en) Webseite ist ein multi-modularer Streckenplaner, welcher OSM-Daten unterstützt. Der OTP-Deployer macht es einfach, eigene Streckeninstanzen zu integrieren.
  • GraphHopper (en) ist ein Java-basierter Routenplaner für eine (Straßen-)Infrastruktur. Auf der Webseite finden Sie das schnelle und ressourcenschonende Programm für (Android, zur Desktopanwendung und Serverimplementierung).
  • BRouter ist auf die Planung von Radwanderungen fokussiert. Dabei werden Höhenunterschiede andere Alternativen und eine, vom Benutzer voll konfigurierbares, Routenprofil berücksichtigt. Außerdem ist eine eigentlich für Android entwickelte Offline-Routenplanung verfügbar, welche jetzt auch über eine Web-API genutzt werden kann.

C/C++:

C#:

  • OsmSharp (en) Eine Bibliothek zur Routenplanung und problematischen Transportoptimierung.

Ruby:

  • Mormon Ruby-Version von pyroutelib

Python:

Perl:

  • Trivialer Router – Zum Einstieg in das Thema: Router inklusive Erzeugung der Routing-Datenbasis aus OSM-Daten in 170 Zeilen Code.

Software für mobile Endgeräte

C/Java:

  • OsmAnd OSM Karte, POI und Routenplanung (Auto/Fahrrad/zu Fuß) für Android
  • Navit Linux, Windows und tragbare Geräte
  • GraphHopper Android, derzeit nur Routenplanung
  • BRouter ist auf die Planung von Radwanderungen fokussiert. Dabei werden Höhenunterschiede andere Alternativen und eine, vom Benutzer voll konfigurierbares, Routenprofil berücksichtigt. Außerdem ist eine offline Routenplanung für Android enthalten.

Bibliotheken/Entwicklungs-Werkzeuge

Bibliotheken mit dem Fokus auf OSM-Routenplanung finden Sie unter Develop/Frameworks (en). Weitere sind nachfolgend aufgeführt (en):

  • Openrouteservice, ist eine freie, open source Bibliothek für routing und mehr in Java und eine API mit vielen Optionen und einem Ökosystem weiterer Tools und libs für Javascript, R, Python, QGIS etc. mit Isochronen, time-distance matrixes, accessibility und mehr.
  • DGLib Directed Graph Library benutzt von Grass's vector network tools (kürzester Pfad, fliegender Händler, isodistances, Steiner Pfade; also Addons)
  • Graphserver is a webservice providing shortest-path itineraries on TIGER/line road maps, and public transport data in the General Transit Feed Specification format
  • pgRouting - PostGIS-based routing engine. Special tool osm2pgrouting for importing OSM data to internal graph structure. Works directly on top of SQL database tables.
  • Libosmscout offers simple, high-level interfaces to offline rendering and routing functionalities based on OpenStreetMap data
  • SpatiaLite hat seine eigene Routenengine, ein virtuelles Netzwerk und ein spatialite_osm_net Werkzeug zum direkten erstellen einer errechenbaren Infrastruktur mithilfe von OSM-Daten. Die Routenplanung kann außerdem unter der Verwendung von Dijkstra oder dem A* Algorithmus durchgeführt werden.
  • GraphHopper Routenengine mit Java API.

Protokolle:

  • Das Standard-Protokoll ist API v0.6 und wird von den Hauptservern verwendet. Wenn es eingesetzt werden kann, kann es alle Daten von OSM transportieren. Planet.osm.
  • Außerdem gibt es ein komprimiertes sowie limitiertes OSM Mobile Binary Protocol.

Straßen-Typ

Von größter Geschwindigkeit, absteigend sortierte highway-Tags:

  1. motorway
  2. motorway_link
  3. trunk
  4. trunk_link
  5. primary
  6. primary_link
  7. secondary
  8. secondary_link
  9. tertiary
  10. tertiary_link
  11. unclassified
  12. residential
  13. living_street / service
  14. track

Durchschnittsgeschwindigkeit

OpenStreetMap benötigt Durchschnittswerte der Geschwindigkeiten, um realistische Zeitangaben bei der Routenplanung machen zu können.

Momentan hat man dabei diese Möglichkeiten:

Fahrspuren

Die Anzahl der Fahrspuren einer Straße wird bei der Erstellung in OSM direkt mit eingezeichnet. Diese Information ist sehr wichtig und hat große Auswirkungen auf die Routenberechnung, um die "schnellste Route" oder die "effizienteste Route" herauszufinden.

Sinuosität

In manchen Studien über die Erreichbarkeit, wie z.B. einer Studie über die Erreichbarkeit eines Krankenhauses, werden Modelle erstellt, die unter Berücksichtigung des Grades der Sinuosität und der Streckencharakteristik eine gewisse Reisegeschwindigkeit annehmen. Bei der Erwähnung von Sinuosität (vermerkte Streckenlänge/geschätzte Reisezeit) ist es für jeden Streckenabschnitt möglich, unter Berücksichtigung der Windungen und Art der Strecke eine Reisezeit zu ermitteln. Das Modell ist präziser, wenn extrem große Bögen vermieden werden und beachtet wird, dass lange Kurvendurchmesser viele kleine Kurven eines Weges ersetzen können. Dabei ergibt beides den gleichen Wert der Sinuosität. Manche Länder nutzen diese Werte, um einzelne Streckenabschnitte aufzuteilen und Geschwindigkeitsbegrenzungen zu setzen (dies ist jedoch nicht üblich).

Auf der anderen Seite setzen geografische Ansätze wie dem space syntax (en) voraus, dass Fußgänger und Fahrzeugführer im urbanen Umfeld bei der Entscheidung ihres Weges durch die Sichtbarkeit der Strecke beeinflusst werden. Für einen Fußgänger betrachtet, würde dies beispielsweise bedeuten, um von Punkt A nach Punkt B zu kommen, würde er prinzipiell die größere, breitere und weithin sichtbarere sowie geradlienig verlaufende Straße wählen. Dabei würde der Fußgänger also die unübersichtlichere und kurvigere Straßen vermeiden, auch wenn die Strecke über eine solche Straße kürzer wäre.

Steigung

An einer Steigung gilt das Gleiche wie in Kurven. Die Geschwindigkeit des Fahrzeuges wird vermutlich verlangsamt.

Straßenzustand

Andere Einflussfaktoren wie z.B. ein schlechter Fahrbahnzustand oder die Breite der Fahrbahn sind für die Berechnung der Durchschnittsgeschwindigkeit sehr schwer zu kalkulieren. Auch das Material der Fahrbahnoberfläche und die Nutzbarkeit der Strecke (vor allem die Verkehrsqualität in abgelegenen Gegenden) oder auch Steilkurven sowie die Übersichtlichkeit der Strecke, beeinflussen unter anderem die Durchschnittsgeschwindigkeit.

Bei OpenStreetMap kann dies vor allem kniffelig werden, wenn zu einer Strecke keine Angaben zu Geschwindigkeit oder ähnlichem gemacht wurde und die Strecke auch keiner Kategorie zugeordnet werden kann. Zum Beispiel bei Offroad- oder unbestimmten Strecken.

Mailing-Liste

Die nachfolgende Liste ist relevant für die Routenplanung

  • osm-routing 'Diskussion über Routenplanung mit Vektordaten. Im besonderen mit OSM-Daten.'
  • osm-accessibility Für alle Fälle von Behinderungen. Dies beinhaltet die Beschreibung und Erstellung sowie Nutzung von Attributen bzw. Tags für die speziellen Bedürfnisse von behinderten Personen. Mit diesen Daten können für solche Zwecke, spezielle Karten erstellt werden.

Siehe auch