Schnelles Routing mit GraphHopper und OpenStreetMap

5 September 2013 von Klaus Bechtold

Dieser Artikel ist schon längst überfällig, da diese Funktion schon seit einigen Wochen bei GPSies integriert ist: Routing für Auto, Fahrrad und Fußgänger mit GraphHopper

GraphHopper?

Zu deutsch: “Graphhüpfer”. Dahinter steckt ein äußerst effektives und schnelles Routing auf Basis der Daten bzw. Graphen von OpenStreetMap.

Logo GraphHopper
© graphhopper.com

Hintergrund: warum ein neues Routing auf GPSies?

Ich suchte seit des abgekündigten Google Routings (basierend auf V2) immer wieder nach brauchbaren Alternativen, welche ich für GPSies verwenden kann. Ab November 2013 wird das “Wege folgen”, also das Routing auf GPSies nicht mehr funktionieren. Google stellt bald den Dienst der API Version 2 ein und will, dass man nun die Version 3 benutzt. Leider läuft GPSies so gut, dass GPSies diese Benutzung des Google Dienstes zu viel Geld kosten würde. Und da GPSies ja kostenlos ist und auch bleiben soll, habe ich das Geld dann leider auch nicht, um Google zu bezahlen ;-)

Also musste eine Alternative her, die ähnlich schnell Ergebnisse liefern soll und auch im Serverumfeld mit vielen parallelen Anfragen zurechtkommt. Ich suchte wirklich sehr lange, probierte viel aus und wurde endlich fündig: OpenStreetMap Routing mit GraphHopper.

Wer steckt dahinter?

Der Kopf dahinter ist der Software-Entwickler Peter Karich, der sein Baby bzw. die Entwicklung mittlerweile nicht mehr ganz alleine als Opensource-Projekt unter der Apache 2 Lizenz vorantreibt. GraphHopper ist komplett in Java entwickelt und kann als Git/Maven/Eclpise Projekt einfach auch mal zu Hause ausprobiert werden.

Wie funktioniert’s?

Keine Ahnung ;-) – mehr muss ich ja auch nicht wissen. Ich weiß nur, dass die weltweiten OpenStreetMap-Daten zuerst (4-5h) eingelesen bzw. verarbeitet werden. Daraus entsteht eine Art binäres Extrakt (also die Routingdaten), die im Hauptspeicher des Servers gehalten werden (erneuter Start ist schneller, da die Daten bereits aufbereitet sind). Alles ist natürlich einstellbar, man muss ja nicht gleich die ganze Welt einlesen. Auch die Parameter zum Routing lassen sich ändern, z.B. ist sogar ein Routing für Wanderreiter zu Pferd möglich. Ideal ist das Routing auch für mobile Geräte, z.B. Android Smartphones, die auch Offline die Routinginformationen zusammenstellen können.

Die aktuelle Version von GraphHopper ist 0.1, siehe auch den Blogartikel dazu: High Performance and Customizable Routing in Java.

GPSies als Sponsor

Jedes Routing auf GPSies benötigt etwa 15 GB Ram. Da GraphHopper hier Auto, Fahrrad und Fußgänger weltweit unterstützen soll und jedes Genre 15 GB Ram benötigt, braucht man schon einen fetten Server, der richtig performt.

GPSies ist Sponsor des GraphHopper Projekts und hat Peter einen 64 GB Ram Server als Spielwiese spendiert, um den Einsatz in der Produktivumgebung GPSies.com zu testen. Der angenehme Nebeneffekt ist, dass auch das GPSies-Projekt davon profitiert und immer up-to-date ist. Ich bin jedenfalls sehr froh, dass ich Peter dazu überreden konnte, GPSies zu unterstützen.

Wie könnt ihr es ausprobieren?

Ganz einfach, wie immer. Melde dich bei GPSies an und rufe den Streckeneditor auf. Direkt rechts neben der Karte befindet sich ein Button: “Teste den neuen Streckeneditor”. Nach dem Klick landest du in dem neuen Editor, der neben GraphHopper auch noch ein paar andere Routings gegenüberstellt. Dann noch das altbekannte “Wege folgen” anklicken und schon kann es losgehen. Die verschiedenen Arten (z.B. Fahrrad) einfach durch anklicken auf das Symbol ändern.

Neuer Streckeneditor
Neuer Streckeneditor mit GraphHopper Routing

Ständige Optimierungen und Verbesserungen

GraphHopper ist noch ein sehr junges Projekt. Das Routing mit dem Fahrrad oder auch zu Fuß geht manchmal Wege, die ein Mensch nicht gehen bzw. fahren würde. Bitte geht nicht so streng ins Gericht, denn es gibt noch reichlich Platz für Verbesserungen. Auch ich werde mich stärker in dieses Thema einarbeiten und versuchen, die Parameter zu verstehen und zu verbessern.

Spielwiese: alternative Routings auf GPSies ausprobieren

Wie ihr natürlich entdecken werdet, gibt es auf GPSies auch noch weitere Routings, ebenfalls Auto, Fahrrad und Fußgänger. Das ist eigentlich mein Testumfeld bzw. meine Spielwiese. Ich habe mich dazu durch gerungen, sie euch zugänglich zu machen. Aber ich kann nicht versprechen, ob sie beständig in GPSies integriert bleiben können. Der Grund sind lizenzrechtliche Fragen und auch die Auslastungen.

Hier die komplette Auflistung der Routings im neuen GPSies Editor mit Kommentaren:

  1. GraphHopper
    darüber handelt dieser Artikel ;-)

  2. Google Directions API
    ist auf ein tägliches Limit beschränkt. Ebenfalls sehr schnell und quasi der Nachfolger bzw. das ehemalige Routing von GPSies

  3. OpenRouteService
    ist ebenfalls sehr gut, jedoch nur für Europa möglich. Wird von des Geos der Uni Heidelberg betrieben und darf nicht zu stark beansprucht werden, da die Server nicht auf Last ausgelegt sind. Bei GPSies haben sie erst mal ein Auge zugedrückt ;-) – danke!

  4. Cloudmade
    ist ein kommerzielles Produkt, das ich wahrscheinlich schnell herausnehmen muss. Grund sind die starken Limitierungen (nur 10.000 Transaktionen pro Monat), die die (Be-)Nutzung einschränken. Ist sehr langsam und auf europäischen Servern zur Zeit eigentlich nicht produktiv einsetzbar.

  1. Patrick    5. September 2013, 11:42    #

    cool, funktioniert super. Tipp: als Mountainbiker die Wege folgen Funktion für Fussgänger einschalten.

  2. — Gunter    5. September 2013, 18:41    #

    Hey das macht ja wirklich einen super Eindruck.
    Hast du auch MapQuest als Alternative berücksichtigt? Das wird zumindest auch von Locus verwendet.
    Und wenn wir gerade beim Thema “Wege folgen” sind: Gibt es eigentlich eine Möglichkeit, dass man dort auch noch nachträglich Zwischenpunkte einfügen kann? Das hätte ich mir nämlich heute gern gewünscht.

  3. Martin    5. September 2013, 18:44    #

    Das hast du wieder fantastisch gelöst. Gut gemacht, denn es funktioniert einwandfrei.

  4. — Heidewolf    24. Oktober 2013, 16:34    #

    Hallo, ich bin PC Technisch nicht so begabt. gpsies kann ich nicht mehr öffnen.Hier im Bericht habe ich nicht viel verstanden. Wie ist den nun die neue Adresse für gpsies ersatz?


Schreibe einen Kommentar (Veröffentlichung erst nach Freischaltung):




* Pflichtfelder

Vor dem Absenden, bitte zuerst "Vorschau" anklicken...



|