Routino als freier Offline-Routenplaner
Pfadfinder
Hinter einem Routenplaner steckt die Idee, einen geeigneten Weg zwischen zwei geografischen Punkten zu ermitteln: dem Start und dem Ziel einer Strecke. Grundlage dafür bilden Daten über bestehende Wege samt deren spezifischen Eigenschaften, die in einer Datenbank liegen.
Im optimalen Fall liefert die Suche eine möglichst effiziente (also kurze oder schnelle) Route, und das innerhalb geringer Rechenzeit. Dabei fließen unter Umständen weitere Kriterien mit ein, wie etwa das genutzte Fortbewegungsmittel, die Eigenschaften der Strecken, der Wegtyp und dessen Zustand sowie der Zeitpunkt, zu dem Sie die Route nutzen (Jahres- und Tageszeit).
Mittlerweile bieten alle Verlage von Landkarten und Navigationssystemen, wie Falk, ViaMichelin, TomTom, Nokia/map24, Kompass und Google Maps, entsprechende Dienste und Software online an – oftmals mit passender App für das Smartphone. Freie Routenplaner stehen hier in Bezug auf Vielfalt und Qualität den kommerziellen Angeboten um nichts nach und gehen je nach Aktivität der Mitwirkenden sogar darüber hinaus.
Als Online-Werkzeuge haben sich OpenStreetMap [1], die Open Source Routing Machine (OSRM) [2] sowie GraphHopper [3] und BBBike [4] einen hervorragenden Ruf erarbeitet. Um unterwegs unabhängig vom Internet zu sein, also ohne Daten von einem Server auszukommen (siehe Kasten "Alles online"), stehen für eine Offline-Recherche Programme wie Navit [5], OsmAnd [6] (OpenStreetMap für Android [7]) und Routino [8] bereit.
Alles online
Es bietet sich an, die Karten und Informationen zum Routing online zu speichern und von dort bei Bedarf abzurufen, weil die Datenmenge mitunter erheblich ist. Die bislang erfassten OpenStreetMap-Daten für Deutschland umfassen 20 GByte, für Österreich rund 6 GByte und für die Schweiz noch 3,5 GByte.
Allerdings benötigen Sie vermutlich eher selten alle Karten und Daten zu Routen – häufig genügt ein bestimmter Ausschnitt davon. Bei Bedarf laden Sie den zusätzlichen Ausschnitt oder die fehlenden Kacheln nach. Wie Ihnen das gelingt, zeigt ein Artikel zu QMapShack in dieser Ausgabe [9]. Zudem benötigt das Berechnen der Routen entsprechende Leistung der Hardware voraus, wenn Sie innerhalb weniger Sekunden ein Ergebnis haben möchten.
Routino
Das Projekt beschreibt Routino als eine Software, die darauf spezialisiert ist, um Routen zwischen Orten auf der Basis topografischer Informationen zu finden, die aus dem OpenStreetMap-Projekt stammen. Aus den Daten berechnet es für Sie den kürzesten oder schnellsten Weg. Dafür nutzt es eine speziell angepasste Datenbank, die die einzelnen Abschnitte eines Wegs in Segmente aufteilt und diese anhand gleicher Eigenschaften gruppiert.
Nach dem Aufsetzen des Programms (siehe Kasten "Installation") benötigen Sie noch Kartenmaterial als OSM-Daten. Ideal zum Stöbern ist dazu die Webseite von der Geofabrik [10]. Das von dort bezogene Material bereiten Sie mit dem Werkzeug Planetsplitter auf; es gehört zum Routino-Paket.
Installation
Bei Debian und Ubuntu finden Sie alle Pakete für Routino im offiziellen Repository. Sie benötigen routino (Routenberechner, Kommandozeilen-Tool), routino-common (Daten für Routino) sowie libroutino0 und libroutino-slim0 (Routing-Bibliotheken). Für das Webinterface und die Anzeige im Browser brauchen Sie zusätzlich noch routino-www und javascript-common sowie einen Webserver wie Apache(apache2) oder Nginx (nginx).
Das Kartenmaterial für Deutschland steht in der Datei germany.osm
bereit, für die Ausgabedateien geben Sie hier de
als Präfix an:
$ planetsplitter --prefix=de germany.osm
Als Ausgabe erhalten Sie die vier Dateien de-nodes.mem
, de-relations.mem
, de-segments.mem
und de-ways.mem
. Die ursprünglichen 20 GByte Daten schrumpfen dabei auf rund 800 MByte. Abbildung 1 zeigt einen Ausschnitt der umfangreichen Ausgaben beim Aufbereiten, hier am Beispiel von Südafrika mit der OSM-Datei south-africa-latest.osm
und dem verwendeten Präfix sa
. Der Datenberg von 2,5 GByte reduziert sich auf überschaubare 108 MByte.
Zum Berechnen der Routen über die Kommandozeile genügt das bereits. Nutzen Sie die Applikation hingegen über das Webinterface, kopieren Sie die vier erzeugten Dateien als Administrator ins Verzeichnis /var/lib/routino/data/
. Beachten Sie dabei, dass Sie bei Debian und Ubuntu die einzelnen Dateien [11] ohne Präfix einspielen [12] – am einfachsten benennen Sie die vier Dateien im Zielverzeichnis um.
Routino stellt Berechnungen für alle Hauptverkehrsarten bereit. Als Profile existieren die naheliegenden Varianten Auto, Fußgänger, Fahrrad, Moped und LKW. Darüber hinaus finden sich aber auch solche für Pferd, Rollstuhl und den öffentlichen Nahverkehr.
Zudem legen Sie für alle Straßentypen Gewichtungen fest. Einbahnstraßen, Beschränkungen hinsichtlich von Gewicht und Abmaßen des Fahrzeugs sowie Barrieren und Einschränkungen beim Abbiegen berücksichtigt das Programm beim Berechnen ebenfalls. Gleiches gilt für weitere Eigenschaften, wie die Beschaffenheit von Straßen und gesetzliche Vorgaben für die Geschwindigkeit.
Auf der Kommandozeile
Möchten Sie den kürzesten Weg zwischen zwei Punkten errechnen, nutzen Sie den Aufruf aus Listing 1. Mit dem Parameter --dir
benennen Sie das Verzeichnis mit den Routing-Daten, mit --transport
das gewählte Transportmittel. Über den Schalter --shortest
weisen Sie die Software an, den kürzesten Weg zu finden.
Listing 1
$ routino-router --dir=/var/lib/routino/data --transport=motorcar --shortest --lat1=-33.9543 --lon1=18.3767 --lat2=-33.9156 --lon2=18.4220 --language=de --output-html Loaded Files: nodes, segments, ways & relations Found Closest Point: Waypoint 1 Waypoint 1 is segment 92418 (node 81541 -> 81558): 18.376667 -33.954291 = 0.000 km Found Closest Point: Waypoint 2 Waypoint 2 is segment 123655 (node 105934 -> 105976): 18.421982 -33.915611 = 0.000 km Routing from waypoint 1 to waypoint 2 Found Start Route: Nodes checked = 3 Found Finish Route: Nodes checked = 3 Found Middle Route: Super-Nodes checked = 1719 Found Combined Route: Nodes = 135 Routed OK Generated Result Outputs
Dazu erwartet Routino zwei Paare von Koordinaten aus Breiten- und Längengrad (lat1
/lon1
und lat2
/lon2
). Beachten sie, dass OpenStreetMap die Koordinaten in genau umgekehrter Reihenfolge als Längen- und Breitengrad angibt.
Der Parameter --language
legt die Sprache fest, in der Sie die Route erhalten. Geben Sie hier nichts an, erfolgt die Ausgabe in Englisch. Die Angabe --output-html
erzeugt eine Datei namens shortest.html
. Abbildung 2 zeigt diese Empfehlung samt Karte mit der Wegstrecke.