Projekt W.O.L.F. - Wege mit OpenStreetMap Lage Finder
Projekt W.O.L.F. - Ways with OpenStreetMap Location Finder
Projekt W.O.L.F. (Wege mit OpenStreetMap Lage Finder) ist als Projektarbeit im Zuge eines Wahlpflichtfachs entstanden. Ziel dieser war die Erstellung einer grafischen Oberfläche zur Visualisierung von Pfadfindungsalgorithmen, siehe Projekt Anforderungen / Ziele.
- Allgemein:
- Setzen von Start, Ziel und Routen Punkten über Links-, Rechts- und Mittelklick
- Schrittweise Darstellung des Suchalgorithmus über Steuerungs Buttons und Slider
- Setzen der Animationsgeschwindigkeit über Slider
- Fixieren der Schritte am Ende über Checkbox
- Themes
- Speichern der Karte als Grafik
- Reiter Karte, erlaubt das Laden und Speichern einer OpenStreetMap Karte über
- die Suche eines Namen, Button "Setze Ort"
- Eingabe von Koordinaten einer Bounding Box, Button "Setze Bbox"
- Durch Zoomen des aktuellen Kartenauschnitts, Button "Setze Aktuelle Auswahl"
- Speichern in GraphML Format, über Button "Speichere GraphML"
- anschließendes Laden der GraphML Datei, über Button "Lade GraphML"
- Reiter Algorithmen:
- Auswahl zwischen Dijkstra, Greedy, A*
- Kantengewichtung nach Strecken, Länge oder Dauer
- Zusatzeinstellungen: Dijkstra mit Ziel Ende, Greedy und A* Auswahl der Heuristik "0","Euclidean", "Euclidean²" oder "Manhattan"
- Anzeige der Start, Ziel und Routen Punkte IDs
- Anzeige des Gewichts, Länge und Dauer der gefunden Route
- Anzeige der gefunden Route
- Reiter Einstellungen:
- Kantenbeschriftung: Keine, Straßenname, Länge, Dauer
- Knotenbeschrifung: Keine, OSM ID
- Karten Hintergrund
Entwicklung einer grafischen Oberfläche zur Visualisierung von Pfadfindungsalgorithmen.
Anforderung | Umsetzung |
---|---|
Möglichkeit eine beliebige OSM zu laden und das Straßennetz zu extrahieren. | ✔ Name, Bbox, Zoom, GraphML |
Unterschiedliche Darstellungsmöglichkeiten der Karte | ✔ Beschriftung + Hintergrund |
Erzeugung des Graphen | ✔ OSMnx + NetworkX |
Auswahl zwischen unterschiedlichen Algorithmen zum durchlaufen | ✔ Dijkstra, A*, Greedy |
Auswahl des Start und Zielknotens auf der Karte durch klicken (Erweiterbar auf mehrere Ziele, s.d. auch Routen erzeugt werden können) | ✔ Links-,Rechts-, Mittelklick |
Dijkstra, A*, Greedy, (optional Potentialfeldmethode, Routenplanung) | ✔ Dijkstra, A*, Greedy + Routen |
Visualisierung des Suchalgorithmus (Einzelne Schritte sukzessive darstellbar) | ✔ |
Mögliche Programmiersprachen Python, C++, Java | ✔ Python + Qt |
Cross Plattform Kompatibilität (Windows, MacOS, Linux) | ✔ Python + Qt |
python -m venv venv
source venv/bin/activate
venv/Scripts/Activate.ps1
oder
venv/Scripts/Activate.bat
PS Sktripte könnten deaktivert sein:
Get-ExecutionPolicy
Als Admin:
Set-ExecutionPolicy Unrestricted
pip install -r requirements.txt
oder
python -m pip install -r requirements.txt
deactivate
Im aktiven Virtenv
python main.py
apply_stylesheet(app, theme='light_amber.xml', invert_secondary=True)
- 'dark_amber.xml',
- 'dark_blue.xml',
- 'dark_cyan.xml',
- 'dark_lightgreen.xml',
- 'dark_pink.xml',
- 'dark_purple.xml',
- 'dark_red.xml',
- 'dark_teal.xml',
- 'dark_yellow.xml',
- 'light_amber.xml',
- 'light_blue.xml',
- 'light_cyan.xml',
- 'light_cyan_500.xml',
- 'light_lightgreen.xml',
- 'light_pink.xml',
- 'light_purple.xml',
- 'light_red.xml',
- 'light_teal.xml',
- 'light_yellow.xml'
OpenStreetMap® sind offene Daten (open data), lizenziert unter der Open Data Commons Open Database-Lizenz (ODbL) von der OpenStreetMap Stiftung (OSMF).
OSMnx ist Open Source und lizenziert unter der MIT Lizenz.
Inspiriert von der Uni Trier Algorithm Demo Shortest path.
W.O.L.F. ist lizenziert unter der MIT Lizenz.