Der Offline-Routenplaner Routino ermittelt auf der Basis von OpenStreetMap-Daten passende Wegstrecken. Wir zeigen, was die Software leistet.
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.

Abbildung 1: Mit dem Werkzeug Planetsplitter bereiten Sie die OSM-Daten so auf, dass Routino diese zum Berechnen der Wege verwenden kann.
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.

Abbildung 2: Die Software gibt die errechnete Route auf Wunsch als HTML-Seite aus, die Sie einfach im Browser aufrufen, um Daten und Karte zu kontrollieren.
Über den Browser
Das Webinterface des Programms erreichen Sie über http://localhost/routino/router.html. Abbildung 3 verwendet als Grundlage das Online-Beispiel des Projekts, denn unter Debian/Ubuntu schlug der Aufruf trotz vorhandener Daten fehl [13]. In der Oberfläche finden Sie links die Navigation und rechts das Ergebnis. Als Optionen wählen Sie zwischen der Sprache der Schnittstelle, den bis zu neun Wegpunkten, der Fortbewegungsart, der Wegbeschaffenheit und der Nutzungsart.

Abbildung 3: Das Webinterface von Routino bietet die gleichen Funktionen wie das Tool für die Kommandozeile. Allerdings hatte die Software unter Debian/Ubuntu einige Probleme.
Die grüne Linie markiert dabei den kürzesten, die blaue Linie den schnellsten Weg zwischen den gewählten Punkten. Bei gedrückter linker Maustaste lässt sich der Kartenausschnitt verschieben. Um die Route neu zu berechnen, setzen Sie zunächst mit der Maus den entsprechenden Wegpunkt um und klicken danach entweder auf den Knopf kürzester Weg oder schnellste Route.
Über den Reiter ERGEBNISSE erhalten Sie nicht nur die gefundene Route, sondern ebenfalls einen passenden GPX-Track sowie verschiedene Wegbeschreibungen mit allen Koordinaten. Über den Reiter DATEN informiert Routino Sie über die genutzte Datenbank, sprich: die Anzahl und Größe der Knoten sowie der hinterlegten Abschnitte.
In der Praxis
Die Zeiten, die Routino für die Strecken errechnet, sollten Sie mit etwas Vorsicht genießen: Die in Abbildung 2 genannten sechs Minuten für die sieben Kilometer von Camps Bay in die Innenstadt von Cape Town lassen sich in der Praxis nur ohne weitere Verkehrsteilnehmer, bei durchgehend grünen Ampeln und bei konstanter maximal erlaubter Geschwindigkeit erreichen.
Uwe Steinmann, der Entwickler hinter der Software, räumt selbst ein, dass die Angaben sehr optimistisch ausfallen und dass das Programm dabei das Verkehrsaufkommen nicht berücksichtigt. Die Geschwindigkeiten für die Reise leitet Routino nur vom Wegetyp ab. Da es es sich um eine Offline-Berechnung handelt, bei der lediglich die Strecke eine Rolle spielt, erscheint dieser Faktor aber nur untergeordnet [10].
Fazit
Routino erwies sich im Alltag bislang als sehr flink und verlässlich. Dieses Urteil hängt aber unter anderen von den hinterlegten OSM-Daten in der Datenbank und dem gewählten Ausschnitt der Karte ab. In wenig erfassten Regionen lieferte das Programm erwartungsgemäß nur magere Ergebnisse. Bei Ballungsräumen mit einem dichten und umfangreichen Datenbestand gab die Software zuverlässige Routen aus. Zurück bleibt der Eindruck eines angenehm funktionalen Designs und des einfachen Umgangs mit den Werkzeugen – wohl einer der Gründe, warum das Programm QMapShack diese Tools zum lokalen Berechnen einsetzt.
Danksagung
Der Autor bedankt sich bei Mandy Neumeyer für ihre Anregungen und Kritik beim Erstellen des Artikels.
Über den Autor
Frank Hofmann arbeitet von unterwegs aus als Entwickler, Trainer und Autor. Bevorzugt arbeitet er in Berlin, Genf und Kapstadt. Er ist zudem Koautor des Debian-Paketmanagement-Buches (http://www.dpmb.org/).
Infos
-
OpenStreetMap: http://www.openstreetmap.de
-
Open Source Routing Machine (OSRM): http://project-osrm.org
-
GraphHopper: https://www.graphhopper.com
-
BBBike: http://www.bbbike.org
-
Navit: http://www.navit-project.org
-
OsmAnd: http://osmand.net
-
Sechs Navigationslösungen für Android-Geräte: https://www.android-user.de/sechs-navigationsloesungen-fuer-android-geraete/
-
Routino: http://www.routino.org
-
QMapShack: Mandy Neumeyer, Frank Hofmann, “QMapShack”, LU 05/2017, S. 24, https://www.linux-community.de/38731
-
Geofabrik-Downloads: http://download.geofabrik.de
-
Routenplanung mit Linux: Uwe Steinmann, “Routenplanung für den eigenen Rechner”, http://www.pro-linux.de/artikel/2/1565/routino.html
-
“Finding a way for routing”: http://blog.madbob.org/finding-a-way-for-routing/
-
Debian Bug Report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=856232





