Software-Entwicklung 13
- Type: Vorlesung (V)
- Semester: WS 12/13
-
Lecturer:
Prof.Dr. Peter Sanders
Dennis Luxen - SWS: 4
- Lv-No.: 24033
Vortragssprache:
DeutschEntwicklung eines Routenplaners / Flexibles Kartenrendering
Aufgabenstellung 1: Entwicklung eines Routenplaners
Bei unserer ersten Aufgabenstellung geht es um die Entwicklung eines Routenplanungssystems, wahlweise für Radfahrer, Autofahrer, oder Fußgänger, das auf PCs läuft. Das System soll in der Lage sein für gegebenen Start- und Zielort geeignete Routen zu berechnen. Weiterhin soll das System über eine graphische Benutzeroberfläche verfügen, über die einerseits Routenanfragen komfortabel an das Programm gestellt werden können, und die andererseits das Straßen- bzw. Wegenetz und die berechneten Routen graphisch darstellt. Bei der Kartendarstellung soll auf das Kartenrendering des OpenStreetMap-Projektes zurückgegriffen werden.
Das Standardverfahren zur Routenberechung ist der klassische Algorithmus von Dijkstra. Dieser arbeitet für größere Graphen (wie z.B. das deutsche Straßennetz) aber eigentlich zu langsam. Hier helfen sogenannte Speedup-Techniken, die Dijkstras Algorithmus zum Teil um vierstellige Faktoren beschleunigen. Für Ihr Projekt empfehlen wir Ihnen z.B. die Verwendung von Arc-Flags, einer einfachen aber recht effektiven Speedup-Technik.
Aufgabenstellung 2: Flexibles Kartenrendering
Bei unserer zweiten Aufgabenstellung geht es um die Entwicklung eines Renderers für Kartenmaterial. Aus geographischen Daten erzeugt ein solcher Renderer graphische Darstellungen im Stile einer Landkarte. Die geographischen Daten stammen aus dem OpenStreetMap-Projekt. Mögliche Features sind z.B.:
- Verschiedener Stylesheets. Das selbe Kartenmaterial kann so auf verschiedene Weisen gerendert werden, z.B. als Straßenkarte, Fahrradkarte oder Wanderkarte.
- Darstellung von Höhenlinien. Die benörigten Höhendaten können z.B. aus dem SRTM Datensatz stammen.
Der Renderer soll als Webserver gestaltet werden, der die gerenderte Karte in Form einzelner Kacheln zur Verfügung stellt.