Gestaltung Navigation Daten
Die Aufgabe Bereitstellung eines Moduls zur Berechnung optimaler Routen Was ist optimal ? Beantwortung ist nutzerabhängig Rennradfahrer -> guter Strassenbelag, schöne Landschaft entlang der Route Mountainbike -> Landschaft, möglichst große Steigungen, gerne unbefestigte Wege Kulturinteressierter Wochenendurlauber -> Möglichst alle Sehenswürdigkeiten in kurzer Zeit besuchen (kürzeste Wege)
Die Aufgabe Was ist eine Route ? Routen können aus mehreren Zwangspunkten bestehen Anforderungen Wegberechnung muß parameterabhängig sein Es müssen evt. mehrere Teilrouten errechnet werden
Lösungskonzept Dimensionen der Lösung Algorithmen zur Bestimmung optimaler Wege Datenstruktur und Datengrundlage Art der Implementierung
Algorithmen Travelling-Salesman-Problem Optimale Lösung Berechnung des besten Weges zwischen jeweils 2 Wegpunkten -sehr rechenaufwändig: n*(n-1) Verbindungen müssen berechnet werden (n-1)! – Routen müssen verglichen werden Pragmatische Lösung Nutzer gibt Punkte in gewünschter Reihenfolge vor Nur noch n-1 Teilrouten zu berechnen
Algorithmen Berechnung optimaler Teilrouten Floyd Vorberechnung aller kürzesten Wege und Speicherung in einer Wegmatrix Danzig & Dijkstra Berechnung des optimalen Weges zwischen zwei Knoten - Min( Kantengewichte)
Algorithmen Realisierung nutzerspezifisch optimaler Routen mit Danzig & Dijkstra Algorithmus minimiert Kantengewicht Berücksichtigung von Nutzervorlieben mittels einer Kanten-Kosten-Funktion Umfangreiche Kantenattributierung notwendig
Kantenkostenfunktion Anforderungen: Basis sollte die Weglänge sein Gleicher Einfluß der einzelnen Attribute Einfache Erweiterbarkeit erstrebenswert Typbildung + Bewertung der Relevanz der einzelnen Attribute
Kantenkostenfunktion Umsetzung: Ausprägungen jedes Attributs wird eine Typzahl zugeordnet: 3 = schlecht 2 = gut 1 = sehr gut Der Nutzer kann die Relevanz jedes Attributs durch eine Bewertungszahl beeinflussen: -1 = lege Wert auf Gegenteil 0 = ist mir egal 1 = würde ich bevorzugen 2 = sollte unbedingt gegeben sein
Kantenkostenfunktion G(k)=[ (Bewertungszahl * Typzahl) + n*3+1)] * Länge Vermeidung negativer Kantenkosten
Kantenkostenfunktion
Programmentwicklung Erstellung einer VBA - Applikation (DLL ) zu AutoCAD2000 Java – Klassen mit direkter Kommunikation zu Servlet Routenberechnung dauert pro Teilroute max. 0.5 s [Intel Pentium 450MHZ (GIS-Labor)]
Längsprofil Auf Wunsch wird ein Längsprofil entlang der Route errechnet und mit Hilfe eines Java-Applets in einer HTML – Seite eingebunden
Anbindung GPS Download der GPS-DateiAuswählen der MaximalpunktzahlAngabe eines Dateiformats
Anbindung GPS H SOFTWARE NAME I Fahrradroutenplaner Bonn H R DATUM IDX DA DF DX DY DZ M E WGS e e e e H COORDINATE SYSTEM U LAT LON DM R TESTROUTEinhdddmm.mmm H IDNT LATITUDE LONGITUDE DATE TIME ALT DESCRIPTION W N E AUG-01 09:34: XXXXXXXXX W N E AUG-01 09:34: XXXXXXXXX W N E AUG-01 09:34: XXXXXXXXX W N E AUG-01 09:34: XXXXXXXXX $GPWPL, ,N, ,E,KARTOINSTITUT* 2F $GPWPL, ,N, ,E,NUSSALLEE*21 $GPWPL, ,N, ,E,MENSA*26 $GPWPL, ,N, ,E,SCHUPPEN*7C $GPWPL, ,N, ,E,CARL-TROLL- STR*7C $GPWPL, ,N, ,E,KATZENBURGW EG*21 $GPWPL, ,N, ,E,BOTGARTEN*2F PCX-5 NMEA Dateiformate
Gestaltung Navigation Daten