Unser Programm erstellt einen Graphen aus einem Kartenausschnitt von OpenStreetMap. Hierbei werden alle Straßen mit einbezogen. Der Graph wird als Datei im *.gdi Format im Projektordner gespeichert. Ihr werdet nach dem starten des Programmes durch das Programm geführt (Konsolenausgabe). Um einen selbst gewählten Kartenausschnitt zu verwenden, muss dieser über die Export Funktion von OpenStreetMap exportiert, und der Downloadlink in unser Programm eingefügt werden.
Dieses Projekt steht unter der MIT-Lizenz. Für weitere Informationen siehe LICENCE.
Damit das OpenStreeMap Projekt auf einem Linux System installiert werde kann, müssen zunächst einige Entwicklungsbibliotheken installiert werden.
Zuerst wird die OpenSSL Library benötigt, die die Implementierung der Kryptographieprotokolle SSL und TLS enthählt:
sudo apt install libssl-devAußerdem wird die libcurl Library benötigt, die dafür sorgt, dass die Requests auf die OpenStreetMap API getätigt werden können.
sudo apt-get install libcurl4-openssl-devZunächst muss das Repository geclont werden.
git clone https://github.com/lfleper/OpenStreetMap.gitWichtig: Bei dem kompilieren des Projekts darf nicht das Programmargument
-libcurlvergessen werden.
In CLion können diese unter "Run | Edit Configurations" angepasst werden.
Anschließend kann das Projekt über "Run|Run openstreetmap" gestartet werden.
Wenn Sie keine IDE zur verfügung haben können sie das Projekt ebenfalls mit CMake kompilieren.
Zunächst muss das Repository geclont werden.
git clone https://github.com/lfleper/OpenStreetMap.gitAnschließend wechseln Sie in Ihrer Linux Bash in das jeweilige Verzeichnis.
Nun führen sie folgende CMake Befehle aus und das Projekt wird kompiliert.
cmake -Bbuild -H.
cmake --build build --target allNun hat sich ein [build] Ordner erstellt, indem Sie die [openstreetmap] Datei finden, die sie wie folgt ausführen können.
./openstreetmapBei der Auswahl von Kartenausschnitten gib es zwei begrenzende Faktoren:
-
Einmal die von Openstreetmap vorgegebene Maximale Knotenanzahl (Diese darf nicht 50000 Knoten überschreiten).
-
Die andere Limitierung ist das Programm selbst und die Art wie bei OpenStreetMap Knoten definiert werden. Unser Programm bezieht sich nur auf die Knoten und Kanten von Straßen, Autobahnen oder Fußwegen und filtert andere Knoten heraus. Eine Kreuzung mit 4 Straßen hat nicht nur einen Knoten und vier Kanten, sondern mindestens 8 Knoten (Zwei für jede Straße). OSM Dateien beinhalten ebenfalls eine große Anzahl an Knoten zu Gebäuden, Grenzen, öffentlichen Einrichtungen und Läden. Dadurch das beim Einlesen der OSM Daten viele Knoten ausgefiltert werden ist die maximale Knotengröße von Kartenausschnitten sehr begrenzt.
Somit können größere Karten ausschnitte von ländlichen Gegenden gelesen werden, während kleinere Ausschnitte von Großstädten schnell zu groß werden und für eine zu hohe Bearbeitungslast sorgen. Unser Tipp bei der Auswahl der Ausschnitte ist also: zunächst mit kleinen Ausschnitten zu testen, um sich später zu Größeren vorzuarbeiten.
Die einzulesenden Kartenausschnitte kann man sich wie folgt herunterladen:
- Openstreetmap.org
- Auswahl des "Export" Buttons in der Oberen Menü-Leiste
- Ort auf der Karte wählen und auf "Einen anderen Bereich manuell auswählen" klicken
- Das Fenster ausbreiten oder verkleinern um den gewünschten Kartenausschnitt zu markieren
- Den Export Button klicken -> Download wird gestartet
- Download-Link kopieren (Im Browser mit einem Rechtsklick auf die heruntergeladene "map.osm" Datei und auf Downloadlink kopieren gehen.
- Diesen Link dann in die Konsole des laufenden Programms einfügen.