Skip to content

benedictweichselbaum/Dijkstravi

Repository files navigation

Dijkstravi

Scenebuilder

https://gluonhq.com/products/scene-builder/

Video zur Installation von JavaFX in IntelliJ --> Unabdingbar zum Programmieren

https://www.youtube.com/watch?v=qn2tbftFjno Die module-Datei ist bereits im Repository. Das müsst ihr also nicht machen!

Link zur Aufgabe

http://www.ba-horb.de/~pl/Programmieren/Projekt_Dijkstra.pdf

Ausführbare .jar erstellen

Einmalig

  • File -> Project Structure (Str + Alt + Umschalt + S)
  • Project Settings -> Artifacts
  • auf + klicken
  • JAR -> From modules with dependencies
  • Main als Main-Class auswählen
  • OK

Optional

  • Name vergeben
  • Output directory anpassen

Zum Erstellen

  • Build -> Build Artifacts
  • Richtiges auswählen -> Build

fertig, .jar liegt jetzt im Output-Verzeichnis

Hinweise:

Das XML mit dem Autobahnnetz ist über die Overpass API entstanden.
Man kann es sich selbst über den "Overpass Turbo" holen.
https://overpass-turbo.eu
Dafür muss man folgenden Query-Code auf dem seitlichen Feld ausführen:


  [out:xml][timeout:1000];
// fetch area “germany” to search in
{{geocodeArea:germany}}->.searchArea;
// gather results
(
  // query part for: “highway=motorway”
  node["highway"="motorway"](area.searchArea);
  way["highway"="motorway"](area.searchArea);
  relation["highway"="motorway"](area.searchArea);
  node["highway"="motorway_link"](area.searchArea);
  way["highway"="motorway_link"](area.searchArea);
  relation["highway"="motorway_link"](area.searchArea);
);
out body;
>;
out skel qt;

Im Gegensatz zum Namen dauert das aber seine Zeit. Also Geduld.
Wenn er fertig ist auf "Export" klicken und die .osm herunterladen.

Vorgehensweise

  • Datenstruktur erstellen
  • OSM einlesen und in Graph übertragen
  • Algorithmen implementieren.
  • Routenausgabe implementieren
  • Graphische Implementierung (Algorithmus ist fertig. Die Nutzung muss natürlich noch implementiert werden.)

Aufgaben

  • Hilfsstruktur für mehrere Start- und Zielknoten
  • Karte zoombar machen -> "Mitscrollen" vermeiden, Drag & Drop einbauen
  • Zeitmessung

„Probleme“

  • Was mit mehreren Namen bei einer Ausfahrt machen? (z.B. Kreuz München-West;München-Lochhausen)
  • Dijkstra und A* werfen Exception bei gleichem Start und Ziel (evtl. gezielt abfangen) -> Bedenken, ob bei Zwischenzielen Kreise möglich sein sollen

Ideen

  • Zwischenziele
  • mehrere Ziele in bester Reihenfolge (evtl. mit Endziel)

About

Code for the Dijkstravi programming project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages