Giter VIP home page Giter VIP logo

wolf's Introduction

Projekt W.O.L.F.

Projekt W.O.L.F. - Wege mit OpenStreetMap Lage Finder
Projekt W.O.L.F. - Ways with OpenStreetMap Location Finder
wolf
beispiel

Inhaltsverzeichnis

Beschreibung

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.

Features

  • 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

Projekt Anforderungen / Ziele

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

Anleitung

Ausführen

1. Virtenv erstellen

python -m venv venv

2. Virtenv aktivieren

Unter Linux:
source venv/bin/activate
Windows:
venv/Scripts/Activate.ps1

oder

venv/Scripts/Activate.bat

PS Sktripte könnten deaktivert sein:

Get-ExecutionPolicy

Als Admin:

Set-ExecutionPolicy Unrestricted

3. Abhänigkeiten installieren

pip install -r requirements.txt

oder

python -m pip install -r requirements.txt

4. zum venv verlassen

deactivate

5. Programm starten

Im aktiven Virtenv

python main.py

Theme umstellen

main.py

    apply_stylesheet(app, theme='light_amber.xml', invert_secondary=True)

Mögliche Themes

  • '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'

Lizenzen

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.

wolf's People

Contributors

corvani88 avatar georgmangold avatar schmidhuberc avatar

Stargazers

 avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.