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