DE:Routenplanung
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
- einfach auf der OSM-Homepage (Blog-Artikel mit Beschreibung, engl.)
- Online-Routenplaner (en) – Es gibt viele verschiedene Webseiten, die OpenStreetMap nutzen, um "Online-Routenplaner" zu betreiben. In dieser Auflistung werden nur solche Dienste aufgeführt, die mehrsprachig betrieben werden können und über einen internationalen Support verfügen.
- Offline-Routenplaner (en) – Außerdem gibt es hier mehrere Möglichkeiten von "Offline-Navigationssoftware", welche auf einem mobilen Endgerät wie Smartphone, Tablet oder Laptop installiert werden kann.
- Navigations-Apps gibt es auch für Android, Apple iOS, Java ME J2ME (en) und Openmoko (en). Weitere Betriebssysteme finden Sie unter Software für moblie Endgeräte (en).
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++:
- Navit (en)
- Open Source Routing Machine (en)
- Routino (en) Ein flexibeler Routenplaner, welcher eingestellte Optionen im Routenprofil berücksichtigt.
- RoutingKit (BSD-Lizenz, C++)
C#:
- OsmSharp (en) Eine Bibliothek zur Routenplanung und problematischen Transportoptimierung.
Ruby:
- Mormon Ruby-Version von pyroutelib
Python:
- openrouteservice-py - Python API für ORS
- PyrouteLib (en) Die Routenengine von Pyroute (en)
- SimpleOsmRouter einfachster Router
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:
- motorway
- motorway_link
- trunk
- trunk_link
- primary
- primary_link
- secondary
- secondary_link
- tertiary
- tertiary_link
- unclassified
- residential
- living_street / service
- 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:
- maxspeed:practical=* - das Proposal (Proposed_features/Practical_maxspeed) wurde zwar abgelehnt ist aber in Gebrauch.
- (momentan tot) Speedcollector (en) war ein Dienst, um Realwerte der Streckengeschwindigkeiten zu erstellen. Dies ist unter Berücksichtigung von average speed per way (en) und der Berechnung von bereits erfassten Strecken möglich.
- Global Statistical Speed Matrix (im Konzeptstadium) zielt darauf ab, Informationen über Geschwindigkeiten aus NMEA/GPX-Aufnahmen effizient in einer Datenbank zu speichern, um die gesammelten Daten für Routenberechnungen nutzen können.
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
- DE:Liste der Navigationsgeräte
- OSM tags for routing (en) - Welche Daten sind in OpenStreetMap gespeichert, die man zur Navigation nutzen kann?
- CartoType, cartotype.com
- Rollstuhlfahrer-Routing - Deutsches Projekt für Rollstuhl-Routenplanung.
- Routing problems - Hilfeleistung bei Problemen mit der Routenberechnung bzw. Routenplanung.
- Routing profiles - Welcher Personenkreis möchte Routen generieren und was sind deren speziefischen Bedürfnisse? Welche Berücksichtigungen sollen gemacht werden wenn 'ein Pferd welches angst vor Ampeln hat aber gerne im Wald ausreitet' eine Routenberechnung anfordert? Wie wählen wir die beste Strecke für einen Radfahrer der in der Nacht mit abgefahrenen Reifen und ohne Licht unterwegs ist?
- Sample driving instructions
- Train routing- Wie kann man öffentliche Verkehrsmittel und andere zeitgesteuerte Dienste in die Routenberechnung einbinden?
- LoroDux - Fußgänger Routenplanung für blinde Personen, auf mobilen Endgeräten.
- Video: Google Tech Talk - Peter Sanders - Fast Route Planning
- Discontinued_Routing_Engines – Liste von Routingsoftware, die nicht mehr weiterentwickelt wird