Live-Tracking für Laufveranstaltung

Live-Tracking für eine Laufveranstaltung im Browser, mit einem angepassten GUI für mobile Geräte.

Zweck

Diese Anwendung ermöglicht das Live-Tracking der Teilnehmer einer Laufveranstaltung, anhand von Zeitmessungs-Daten. Das GUI wurde speziell für mobile Geräte (getestet auf iPhone/iPod touch, Android V2.X, Opera Mobile 10 und Nokia S60 Browser) mit kleinem Bildschirm und die Touch-Bedienung angepasst.

Details

Für die Sun Sportmanagement GmbH wurde für die Ulmer Laufnacht und den Einstein Marathon eine Live-Tracking Anwendung für mobile Geräte erstellt. Die Anwendung sollte ergonomisch zu bedienen und auf möglichst vielen mobilen Geräten bzw. Browsern lauffähig sein. Andererseits sollte die Client-Software ausreichend intelligent sein, um die Berechnungen der Position und Aktualisierung der Darstellung ohne zutun einer Server-Komponente durchzuführen. Dies ist zwingend notwendig, wenn das Tracking auch für Events mit höherer Teilnehmerzahl skalieren soll.

Ausgangspunkt der Anwendung sind ca. 18.000 GPS-Datenpunkte, die die Strecke spezifizieren. Diese sehr genauen Geo-Daten mussten für die Verarbeitung auf mobilen Geräten vereinfacht werden. Hierzu dient ein modifizierter Douglas-Peucker-Algorithmus, der in spärischen Koordinaten eine definierte metrische Genauigkeit zulässt. Die Daten der Zeiterfassung stammen vom Dienstleister Abavent, H&G GmbH und Mika timing GmbH, die während der Veranstaltung in kurzen Intervallen per Web-Service mit dem Datenbestand der Anwendung synchronisiert werden.

Bei der Initialisierung der Anwendung werden die vereinfachten Daten an das Gerät übertragen. Wird jedoch ein oder mehrere Läufer zur Beobachtung ausgewählt, müssen nur noch der Zeitstempel des Server, die aktuelle Position den Läufers sowie die aktuelle Geschwindigkeit übertragen werden. Der Berechnungsaufwand auf dem Server sowie die übertragene Datenmenge wird hierdurch minimiert. Zu welchem Zeitpunkt der Client seine Daten aktualisiert, kann durch mehrere Faktoren gesteuert werden. Einerseits geschieht die Abfrage nach einem definierten Intervall. Andererseits kann eine Abfrage nach Passieren einer definierter Anzahl von Wegpunkten oder speziellen Point-Of-Interests (POI) erfolgen.

Ausgehend von der vom Server vorgegebenen Position und Geschwindigkeit kann der Client die zurückgelegte Strecke berechnen. Er sucht dann die relevanten Geo-Koordinaten, die bei der Initalisierung übertragen wurden. Zwischen zwei benachbarten Geo-Punkten wird linear Interpoliert und die Anzeige per Google-Maps-API aktualisiert. Das Aktualisierungsintervall wird je nach Zoom-Level der Karte variiert.
Für jeden gewählten Läufer wird per Google Chart API ein Icon bzw. ein Pin zufälliger Farbe erzeugt. Der Läufer wird in eine Tabelle eingetragen und die berechnete, zurückgelegte Strecke aktualisiert.

Verwendete Technologie

  • PHP 5.3
  • Zend Framework 1.10
  • MySQL
  • jQuery 1.4.2 / jQuery UI
  • Google Maps API V.3
  • Google Chart API