defunct! ->

EnhancedMaps

Projektarbeit Darina Sharonova

Betreuer: Dominikus Baur

Aufgabenstellung

In dieser Projektarbeit sollen Informationen aus einer Stadtkarte mit Fahrplänen von öffentlichen Verkehrsmitteln verknüpft werden. Busse, Trambahnen und U-Bahnen sowie deren Haltestellen werden auf einer Landkarte an ihrer jeweils aktuellen Position angezeigt. Der Benutzer kann den angezeigten Kartenausschnitt vergrößern und verkleinern (Zoom), die Position verändern (Pan) und den aktuell angezeigten Zeitpunkt verändern. Durch diese Herangehensweise wird Informationsbeschaffung, die über gängige Webformulare kompliziert und umständlich ist, sehr einfach.

Anwendung

Im folgenden eine Beschreibung der MINIMAL-Anforderungen der Arbeit. Sinnvolle Erweiterungen sind gerne gesehen.

Die Stadtkarte Münchens soll wie oben beschrieben mit Zusatzinformationen versehen werden. Dabei reicht je nach Aufwand beim Eintragen der Daten (Haltestellen, Fahrpläne) fürs Erste auch nur die Visualisierung eines Ausschnitts (mind. eines Stadtteils) der Stadt. Dieser Kartenausschnitt soll stufenlos zoom- und verschiebbar sein. Außerdem soll der Benutzer den gerade angezeigten Zeitpunkt stufenlos vor- oder zurückverlagern können.

Busse, Trambahnen und U-Bahnen werden an ihren jeweils aktuellen Positionen angezeigt. Diese Positionen werden normalerweise direkt zwischen den Haltestellen interpoliert. Es wäre schön, wenn sich Busse und Trambahnen auf den jeweils richtigen Straßen (auf denen sie auch tatsächlich fahren) bewegen würden, wenn dies aber in keinem Verhältnis zum Aufwand steht kann die Position auch so berechnet werden. Es sollte allerdings sichtbar sein, in welche Richtung sich das Verkehrsmittel gerade bewegt. Außerdem sollen für jedes Verkehrsmittel die Linie (z.B. U3, U6, Tram 17) sowie die jeweiligen Haltestellen angezeigt werden.

Die Interaktionsmöglichkeiten die dem Benutzer zur Verfügung gestellt werden sollen sind:

  • Zoom: Vergrößern und Verkleinern des angezeigten Bildausschnitts (z.B. Mausrad)
  • Pan: Verschieben des gerade angezeigten Bildausschnitts (z.B. Drücken und Halten der linken Maustaste und Verschieben der Maus)
  • Rewind/Fast-Forward: Verändern des gerade angezeigten Zeitpunkts (z.B. Drücken und Halten der rechten Maustaste und Verschieben der Maus)

Die Anwendung könnte folgendermaßen aussehen:

mockup1.jpg

mockup2.jpg

Konkrete Aufgaben

  • Erstellung einer Literaturliste von verwandten/relevanten wissenschaftlichen Arbeiten
  • Erstellung eines ausführlichen Designdokuments im Medieninformatik-Wiki
  • Entwurf und Implementierung einer Software in C#, die das Design umsetzt
  • Erstellung einer mindestens 30-seitigen Ausarbeitung, die den Hintergrund, das Design, die Implementierung und die Ergebnisse beschreibt und sich an diese Vorgaben (http://www.medien.ifi.lmu.de/lehre/arbeiten/richtlinien.xhtml) hält
  • Halten eines Vortrags im Oberseminar

Zeitplan

http://www.google.com/calendar/render?hl=de&tab=wc Zeitplan

Design

1. Map.

Die Landkarte ist in einer graphischen Dateien gespeichert (oder in mehreren, geschnitten in Quadratsektoren). Parallel dazu existiert eine XML-Datei mit Anbindung von Haltestellen an die Landkarte. Die XML-Datei besteht aus folgenden Elementen:
‹station›
‹id›12345‹/id›
‹name›Münchner Freiheit‹/name›
‹type›bus‹/type›
‹x›123‹/x›
‹y›234‹/y›
‹sector›Q13‹/sector›
‹/station›

So wird jede Station beschrieben, die sich auf der Landkarte befindet. Dabei ist ‹id› eine eindeutige ID der Station, unter der die auch in der Fahrplan-Datenbank gespeichert ist. ‹type› ist bus, subway oder streetcar. ‹x› und ‹y› sind die Koordinaten der Haltestelle auf der Landkarte bzw. auf dem jeweiligen Sektor. ‹sector› - ID des jeweiligen Sektors. Beim Darstellen der Karte werden die sich gerade im sichtbaren Abschnitt der Karte befindenden Haltestellen mit entsprechenden Icons gekennzeichnet. Das sind kleine aktive Bereiche mit einem Radius von z.B. 10 Pixel: wenn der User mit der Maus drüber fährt, wird ein Tooltip mit den Angaben zu der Station angezeigt. Die Navigation erfolgt ähnlich wie bei Google Maps durch Panning oder Klick auf vier Pfeile: links, oben, rechts und unten. Für das Zooming gibt es mehrere Landkarten. Beim Zooming erfolgt ein fließender Übergang zu der neuen Zoom-Ebene, ähnilich wie bei Google Maps.

2. Visualisierung

Das Programm läuft in zwei Threads: UI Thread und Working Thread. Der UI Thread (Hauptthread des Programms) ist für die Interaktion mit dem User verantwortlich (Navigation, Zooming, Panning, Zeitliches Vor- und Zurückspulen). Der Working Thread zeichnet im Hintergrund die Bewegung der Fahrzeuge (PSV – Public Service Vehicle) auf den gewählten Strecken. Es existiert ein 2D-Array „current_stages“: das ist eine Tabelle mit einer Zeile pro Kombination PSV/Stage (Stage ist eine Strecke zwischen zwei Nachbarstationen). Jede Strecke wird in Stages „zerlegt“. In jeder current_stages-Zeile sind enthalten: PSV–Typ (Bus, Straßenbahn, U-Bahn), Startstation der Stage, Endstation der Stage, Abfahrtzeit, Ankunftzeit, aktuelle Koordinaten des PSV. Nach Ablauf von festgelegter Anzahl von Sekunden (Tick) werden die Angaben in der current_stages-Tabelle sowie die Positionen von PSVs auf der Karte aktualisiert: für jedes PSV werden seine Koordinaten neu berechnet (dabei gehen wir vorerst von einer gradlinigen Bewegung von PSVs aus). Wenn ein PSV die Endstation der Stage erreicht hat, wird seine Zeile au der current_stages-Tabelle gelöscht (dazu wird die aktuelle Uhrzeit mit der in der current_stages gespeicherten Ankunftszeit verglichen). Nach jedem Tick erfolgt außerdem eine Datenbankabfrage, um die eventuellen neuen PSVs zu ermitteln. Für die dazu gekommenen PSVs werden anschließend neue Zeilen in die current_stages eingefügt. Beim Vor- und Zurückspulen werden die Daten auf die gleiche Art aktualisiert.

Implementierung

Das Projekt (Codename "Alegria" :)) befindet sich gerade in der ersten Entwicklungsphase "Stadtplan Engine: Navigation, Panning, Zooming, Haltestellen". Entwickelt wird mit C# (Microsoft Visual Studio 2008), basierend auf WPF-Technologie (Microsoft Windows Presentation Foundation) für .NET 3.5.

Literatur

-- DominikusBaur - 07 Mar 2008
Topic attachments
I Attachment Action Size Date Who Comment
mockup1.jpgjpg mockup1.jpg manage 62.2 K 07 Mar 2008 - 13:37 DominikusBaur  
mockup2.jpgjpg mockup2.jpg manage 62.1 K 07 Mar 2008 - 13:37 DominikusBaur  
Topic revision: r4 - 28 Oct 2008, DominikusBaur
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Medieninformatik-Wiki? Send feedback