Routino
Routenplanung für den eigenen Rechner
Mit Routino und den Daten von OpenStreetMap lassen sich Routen planen, auch solche, die mit anderen Programmen nicht möglich sind.
PHP-Schnittstelle
Was manchen Anwendern wie die Steinzeit des Computer-Zeitalters vorkommt, ist für den Web-Programmierer ein Segen. Gemeint sind Kommandozeilenprogramme, die sich leicht in Web-Anwendungen nutzen lassen. Daraus ergeben sich weitreichende Anwendungsgebiete. Wer in PHP programmiert und sich nicht selbst um die passenden Optionen auf der Kommandozeile kümmern möchte, der sollte sich das PEAR-Paket Routino-Router der MMK GmbH anschauen. Mit wenigen Zeilen PHP-Code lässt sich der Router starten und man bekommt ein Ergebnis-Objekt mit allen Abbiegepunkten.
<?php
include('Router_Routino/Router_Routino.php');
$router = new Router_Routino();
$router->addPosition(51.359673, 7.479866);
$router->addPosition(51.377397, 7.487869);
$router->setHighwayMaxspeed('motorway', 50);
$result = $router->run();
print_r($result);
print_r($result->getTotals());
?>
Genutzt wird diese Schnittstelle beispielsweise in einer Umkreissuche zur Ermittlung des nächstgelegenen Restaurants zum aktuellen Standort. Die Suche selbst sortiert die gefundenen Restaurants zunächst nach der kürzesten Luftliniendistanz. Für die ersten sechs Treffer wird jedoch die Entfernung mit dem Auto zusätzlich ermittelt und ausgegeben. Diese Entfernung basiert auf der von Routino ermittelten Fahrstrecke.
Marble
Das KDE-Programm Marble kann ebenfalls Gebrauch von Routino machen. Unter Debian ist nichts weiter notwendig als die Installation des Programms. In der ebenfalls zweigeteilten Darstellung in Marble findet man im linken Bereich einen Reiter . Sofern Routino von Marble gefunden wurde, findet man unten auf dem Reiter ein Auswahlmenü der möglichen Router. Bei der Erstellung des Screenshots war dies neben Routino noch der Dienst von OpenRouteService.
In der Abbildung sind zwei Routen durch die fünf vorgegebenen Punkte ersichtlich. Die blaue Route wurde durch Routino berechnet. Die graue Route stammt von OpenRouteService. Was bereits oben erwähnt wurde, zeigt sich hier ganz deutlich. Der Weg von Punkt B zu Punkt C verläuft bei Routino durch den Wald und ist damit sicher länger als der vorgeschlagene Weg von OpenRouteService über die Hauptstraße vom Typ secondary. Auch auf dem Weg von Punkt D zu Punkt E verlässt Routino die Straße vom Typ tertiary sobald als möglich und wählt den Zickzack-Kurs durch das Wohngebiet. Auch hier wird der offensichtlich längere Weg gewählt. Die Abneigung von Routino für größere Straßen bei der Fußgängernavigation liegt in den reduzierten Prozentwerten für Straßen dieses Typs (einsehbar in den der Web-Oberfläche). Marble erlaubt hier keine Änderung der voreingestellten Werte. Sie müsste direkt in den Konfigurationsdateien von Routino (/usr/share/routino/profiles.xml) erfolgen oder besser durch Angabe einer eigenen Profildatei beim Aufruf des Routers (Option --profiles).
Zu guter Letzt
Routen in guter Qualität berechnen kann Routino. Nicht minder interessant ist aber auch die Nutzung als Testwerkzeug für die eigenen Beiträge zu OSM. Die Berechnung bekannter Wegführungen durch Routino offenbart oft Überraschungen, die bei näherer Betrachtung auf unzureichendes Mapping zurückzuführen sind. Schranken (barrier), denen die Passierbarkeit durch Fußgänger fehlt, Einbahnstraßen, die von Fahrradfahrern beidseitig befahren werden dürfen, die Routino aber umständlich umfährt, weil dies nicht aus den OSM-Daten hervorgeht, fehlerhafte Abbiegevorschriften oder sogar fehlende Verbindungen zwischen Wegen fallen schnell auf.
Eine zweite Anwendung ist das gezielte Erstellen von gpx-Dateien und das Ausmessen von Strecken. Gelegentlich benötigt man im Vorfeld eine gpx-Datei einer anstehenden Wanderung oder Fahrradtour. Eventuell möchte man auch nur wissen, auf welche Streckenlänge man sich einlässt. Mit genügend Zwischenhalten schickt man Routino genau auf den geplanten Weg und erhält die Länge der Strecke, sowie deren gpx-Datei zum Download.
Ein paar Eigenheiten
Das Routino-Web-Frontend erlaubt ein Zoom bis zur Stufe 16. In der höchsten Stufe fällt auf, dass berechnete Routen nicht immer genau auf Wegen liegen. Bei sehr nahe aneinander liegenden Wegen kann es auch schwierig werden, den genauen Weg zu ermitteln. Der Grund liegt in einer Optimierung der Datenbank, die seit Version 2.2 greift. Knoten auf Wegen, die weniger als 5 m von der geradlinigen Verbindung abweichen, werden nicht mehr berücksichtigt. Dies reduziert die Datenbankgröße um etwa ein Drittel und verkürzt die Zeit für das Routing geringfügig. Der Preis sind etwas ungenauere Wegführungen, die für die Navigation aber unerheblich sind.
Die ermittelten Wegzeiten waren schon Thema. Man könnte auch behaupten, die vorhergesagten Zeiten sind innerstädtisch hoffnungslos optimistisch. Das liegt nicht nur an den Höchstgeschwindigkeiten, die aus dem Straßentyp ermittelt werden, sondern auch daran, dass andere Faktoren, beispielsweise Ampeln, keine Berücksichtigung finden. Das aktuelle Verkehrsaufkommen wird ohnehin nicht berücksichtigt, aber das ist bei einem Offline-Router auch nicht oberste Priorität.
Fazit
Routino ist schnell, hat viele Einstellmöglichkeiten und lässt sich in vielen Anwendungsszenarien einbinden. Letztlich macht es aber vor allem viel Spaß, mit Routino zu »spielen« und die eigene Umgebung zu erkunden. Oft mit ganz neuen Erkenntnissen, um von hier nach dort zu kommen.
Autoreninformation
Uwe Steinmann ist Debian-Entwickler und Geschäftsführer der MMK GmbH in Hagen. Er ist Maintainer des Debian-Pakets und entwickelt Web-Anwendungen, die auch Routino nutzen.


