Offline Routing mit osm-Daten

Hallo,

ich bin neu bei Openstreetmap und bin Master-Student an der Hochschule Trier im Studiengang Bauingenieurwesen.

Im Zuge eines kleinen Projektes und in Zusammenarbeit mit dem Landesbetrieb Straßen NRW habe ich die Aufgabe, für den geplanten A1 Lückenschluss eine Route zu erzeugen, die dann anschließend offline mit einem Routingprogramm betrieben werden kann. Es gibt hierzu bereits verschiedene Varianten, wie dieser Lückenschluss entstehen könnte.

Jetzt habe ich zunächst einmal mit JOSM eine dieser Varianten erstellt und als osm-Datei abgespeichert. Das ganze muss natürlich offline bleiben, weil die Strecke noch nicht existiert.
Meine Frage wäre nun, wie ich nun diese eingebaute Route in eine Karte bekomme, mit der ich dann offline routen kann, sodass ich mir beispielsweise die Route von Trier nach Köln berechnen lassen kann, um hier den Unterschied zu sehen mit und ohne den Lückenschluss. Wie bereits erwähnt, muss alles offline geschehen. Ich kann also den Lückenschluss nicht hochladen.

Vielleicht kann mir hier ja jemand weiter helfen :slight_smile:

Viele Grüße
Tobias

Hallo Tobias,

herzlich willkommen im Forum.

Offline-Routing kannst du auf der Android-Plattform (vielleicht auch in einem Android-Emulator?) mit OsmAnd (http://wiki.openstreetmap.org/wiki/OsmAnd) machen. Dazu Osmand installieren, dann die App starten und unter Einstellungen → Datenmanagement, irgendeine Karte herunterladen. Es sollte nicht NRW oder Rheinland-Pfalz sein, da diese beiden Länder im betroffenen Gebiet (Eifel) liegen. Das Tolle an OsmAnd ist, dass die Karten als Vektordaten im OsmAnd-eigenen .obf-Format auf der SD-Karte liegen. Mit dem Java-Programm OsmAndMapCreator kann man diese .obf-Dateien aus .osm- und .pbf-Dateien selbst erzeugen. Wie das geht, steht unter http://wiki.openstreetmap.org/wiki/DE:OsmAndMapCreator

Ich selbst würde bei der Geofabrik (http://download.geofabrik.de/) aktuelle Auszüge für Rheinland-Pfalz und NRW im .pbf-Format herunterladen und daraus mit OsmAndMapCreator die .obf-Dateien erzeugen. Für das Routing über die neue Autobahn würde ich dann mit JOSM das Gebiet in der Eifel herunterladen und die neue Autobahn einzeichnen. Diesen Datenstand dann LOKAL (nicht hochladen) als neue-A1.osm speichern und daraus mit dem OsmAndMapCreator eine neue-A1.obf erzeugen.

Wenn nur die ersten beiden .obf-Dateien auf der SD-Karte des Handys liegen, wird nur über das bestehende Netz geroutet. Liegt auch die .obf-Datei mit der neuen Autobahn auf der SD-Karte, wird diese beim Routing berücksichtigt.

Bitte beachte, dass der Anfang und das Ende der neuen Autobahn auf Nodes (Punkten) liegen muss, die Teil des realen Straßennetz sind. Das Routing ist von den Tempolimits abhängig. Gerade in ländlichen Räumen fehlen diese. Schau also vorher nach, ob auf den möglichen Routen die Höchstgeschwindigkeiten eingetragen sind und ergänze diese (vor Ort schauen, welches Tempolimit gilt). Die Geofabrik-Extrakte werden jede Nacht aktualsiert. Lade mit JOSM nur so viel wie nötig herunter. Wenn der gewählte Ausschnitt zu groß ist, benötig JOSM sehr viel RAM und wird langsam. Dann hilft nur noch ein Neustart von JOSM.

Viele Grüße

Michael

Hmmm, alles was mit OSM-basierten Routing zu tun hat, sollte unter http://wiki.openstreetmap.org/wiki/Routing gesammelt sein, sei es für online- oder offline-Routing.

Da musst du dir mal ein paar Lösungen heraussuchen und ausprobieren.

Es gibt ja sonst auch noch die OSM-Routing-Mailingliste.

Schwierig.
Zunächst mal: Rohdaten gibt’s von http://download.geofabrik.de/
Wenn du die bz2-kompirimierte Version wählst, kannst du die Daten in JOSM aufmachen, bearbeiten und speichern.
Das dauert allerdings beim “kleinen” Datensatz des Saarlandes schon recht lange: bereits 9 Minuten CPU-Zeit, 600 MB Speicher und einen Prozessorkern belegt und kein Hinweis wann das mal endlich fertig wird…
Aus den gespeicherten Daten läßt sich mit Hilfe von splitter und mkgmap eine Karte für Garmin-Geräte erzeugen. Und dort kann man dann das Routing rechnen lassen.
Vielleicht gibt’s einfachere Wege, das zu erledigen - ich kenne mich halt nur mit der Erzeugung der Garmin-Karten aus.

Ich würde das so machen (sorry für den Staccato-Stil):

Option 1: Über Extrakt

  • Deutschland Extrakt bei Geofabrik herunterladen [1]
  • Mit osmconvert die interessante bbox herausfiltern [2]
  • Mit osmfilter alles herausfiltern, was nicht highway=* ist (dabei kann man sicherlich auch highway=path und highway=track rauswerfen) [3]

Option 2: Mit Overpass API nur interessante highway=* in gewünschter BBOX als im OSM Format herunterladen. [4]

Danach geht’s mit beiden Optionen so weiter:

  • Kopie der Ergebnisdatei anlegen, dort die Änderungen mit JOSM vornehmen (Lückenschluss der A1 ergänzen). Ich hoffe mal sehr, dass bis dahin das Datenvolumen so geschrumpft ist, dass das in JOSM noch problemlos funktioniert.

  • OSRM installieren, also Server + Web Frontend und jeweils für die verschiedenen .osm Dateien unterschiedliche Serverinstanzen (also server.ini) einrichten, die auch auf unterschiedlichen Ports laufen. Dann müsste man dem Frontend noch beibringen, eine Wahl des jeweiligen Servers vornehmen zu können. [5] + [6] + [7]

Ist schon etwas Aufwand, wäre aber komplett offline-fähig, sobald einmal die OSM-Dateien erzeugt wurden.

Links:
[1] http://download.geofabrik.de/europe/germany.html
[2] http://wiki.openstreetmap.org/wiki/DE:Osmconvert
[3] http://wiki.openstreetmap.org/wiki/Osmfilter
[4] http://wiki.openstreetmap.org/wiki/Overpass_API
[5] http://project-osrm.org/
[6] https://github.com/DennisOSRM/Project-OSRM
[7] https://github.com/DennisOSRM/Project-OSRM-Web (->Integration into Project-OSRM repository)

Hallo und willkommen!

Auf Java-fähigen- und Android-Smartphones kannst du auc GPSMID nehmen: http://sourceforge.net/apps/mediawiki/gpsmid/index.php?title=Main_Page bzw. vorgefertige Karten: http://www.thju.de/gpsmid/

Oder gleich die Weiterentwicklung ShareNav nutzen: http://www.sharenav.net/

Mit diesen Programmen kannst du aus osm-Dateien diese Offline-Navigationsprogramme erstellen. Heißt also entweder aus OSM Dateien direkt von OSM oder welche, die du vorher bspw. mit JOSM selbst modifiziert hast.

DU erhälst dann eine App direkt mit den Daten, die du auch haben willst.

Viel Erfolg!

Hier nochmal eine Anleitung, wenn der Router nicht wie Falle von osmand mit mehreren Dateien arbeitet und die nach Belieben zusammenführen kann:

  1. In JOSM neue fiktive Straße malen, dabei die neue Straße an bereits existierende Knoten hängen, ohne diese zu verschieben oder sonst wie zu ändern. Das geht auch mit einem kleinen Ausschnitt, wichtig ist nur, dass eine Verbindung zum restlichen Straßennetz besteht. Das Ergebnis in eine lokale Datei sichern, nicht hochladen!

  2. Mittels osmconvert einen existierenden Extrakt um die neue fiktive Straße ergänzen
    osmconvert saarland.osm.pbf fiktiv_nordsaarland.osm -o=saarland_fiktiv.osm.pbf

  3. Neue Datei in OSRM verarbeiten (oder eines der anderen hier vorgestellten Tools, je nach Anforderung).

Das Ergebnis sieht dann so aus: man beachte die FIKTIVE NORDSAARLANDSTRAßE

Aufwand: 20 Minuten, alle Tools waren schon lokal installiert.

Anekdote am Rande: Die geplante Nordsaarlandstraße wird wohl gerade wieder eingestampft, weil sie über bestehendes Übungsgelände führen würde, auf das man ungern verzichten möchte. [1] :sunglasses:

Gruß,
mmd

[1] http://www.sr-online.de/sronline/nachrichten/politik_wirtschaft/nordumfahrung_merzig100.html

moin mmd,

hast Du für die Nordsaarlandstra&e die Zeiteinsparung ermittelt?

Danke und LG

machst Du mit 20 min nicht den Akkord kaputt? :slight_smile:

Hi Fred,

die größte Einsparung dürfte wohl sein, dass man nicht mehr durch die Innenstadt von MZG über die L157 fahren muss [1]. Leider fehlen dort viele maxspeed-Tags [2], die ermittelte Zeit von 42 Minuten ist also eher zu optimistisch. Ist aber alles im Bereich von wenigen Minuten und Kilometer - zumindest für einen Router, der keine Ahnung von Stauinfos hat :).

Zum Aufwand: da fehlt natürlich noch Testen, Dokumentation, etc. also wohl doch nix mit 20 Minuten.

[1] http://osrm.at/2Jm
[2] http://roads.osm4people.org/?zoom=13&lat=49.46256&lon=6.68844&layers=FFFFB0FFTFFFFF

Gruß!
mmd

Darf man im Gegenzug fragen, welche Tragweite das Projekt aus Sicht des Landesbetriebs hat? Geht es nur um das konkrete Vorhaben A1-Lückenschluß oder ist das ganze auch ein Test, ob man für solche Simulationen zukünftig routinemäßig OSM-Daten einsetzen kann? Letzteres wäre natürlich im Erfolgsfall eine großartige Referenz für uns (ersteres freilich auch schon).

Erstmal vielen Dank für die zahlreichen Rückmeldungen :slight_smile:

@ Oli-Wan: Zunächst einmal geht es nur um den A1-Lückenschluss. Aber wenn das alles gut funkioniert dann soll das ganze später auch für andere, ähnliche Projekte angewendet werden können. Dazu erstelle ich dann eine Vorgehensweise für den Landesbetrieb.

Und noch eine Idee: Die Seite http://wiki.openstreetmap.org/wiki/Research kennst du? Auf der Seite werden Forschungsarbeiten gesammelt, die sich entweder mit OSM beschäftigen oder Daten von OSM verwenden. Durchsuche die mal nach Stichworten wie Verkehr/traffic, analy(…) und simulat(…). Vielleicht findet sich ja etwas, das für deine Aufgabe verwendbar wäre.

Ich dachte da z.B. an:
“OpenStreetMap For Traffic Simulation” - Michael Zilske, Andreas Neumann, Kai Nagel - 11/2011,
A workflow for generating multi-agent traffic simulation scenarios based on OpenStreetMap.

Der Link dazu ist: http://svn.vsp.tu-berlin.de/repos/public-svn/publications/vspwp/2011/11-10/2011-06-20_openstreetmap_for_traffic_simulation_sotm-eu.pdf

Zwei weitere Links, die ggfs. ein Startpunkt für weitere Suche sein können:

Edbert (EvanE)