Hallo Sven, mir fehlt für eine ausführliche Antwort jetzt leider die Zeit. In Norwegen hat aber jemand etwas ähnliches vorgehabt und umgesetzt. Dies ist in seinem Blog [1] ausführlich beschrieben und den Code hat er auf github [2] veröffentlicht.
Er benutzt auch CartoDB und Leaflet. Vielleicht kannst du davon einiges ableiten... Viele Erfolg Lars [1] http://blog.thematicmapping.org/2015/04/real-time-satellite-tracking-of-your.html [2] https://github.com/turban/nordryggen On 12.07.2015 23:10, Sven wrote: > Hallo, > > mein Teampartner und ich nehmen in Kürze an einer Wohltätigkeitsrally > teil, die uns von London nach Ulan-Bator, der Hauptstadt der Mongolei, > führt. > > Wir haben in unserem Auto einen Logger, der zum einen Positionsdaten, > zum anderen noch Fahrzeugdaten wie Außentemperatur etc. erfasst. Diese > Daten sollen automatisiert auf eine Karte visualisiert werden, die wir > in unser Wordpress-Blog einbinden. > > Wir haben den Aufwand und die Expertise, die man für eine solche > Einbindung benötigt, komplett unterschätzt und müssen das Ganze am > Mittwoch Abend stehen haben. Aaaahhhh! > > Wir haben schon aus dem Bekanntenkreis tolle Unterstützung erhalten, > sind aber jetzt an einige Knackpunkte gekommen, die wir ohne langwierige > Einarbeitung nicht selbst lösen können. > > Daher die Frage und große Bitte, einmal kurz den Sachverhalt zu scannen > und zu prüfen, ob jemand ein Patentrezept kennt oder uns einen Weg > aufzeigen kann oder jemand empfehlen kann, der das (auch kommerziell) > machen könnte unter den zeitlichen Rahmenbedingungen. > > **Ausgangslage** > > Die zwei Datenarten, die wir erheben, tun wir in eine Datei packen, > damit nur > eine Datei ausgelesen und verlinkt werden muss. Wir haben dabei einmal > die Positionsdaten und dann noch ein paar fahrzeugspezifische Parameter, > die noch genauer definiert werden müssen, aber die im nachfolgenden > Code-Snippet schon mal als Dummy drinstehen. > > Pro Fahrt, d.h. Zündung an und Zündung aus, wird ein Datensatz erzeugt, > dieser liegt im xml-Format vor (damit wir mehrere Werte unterbringen > können, was ja bei gpx nicht geht). > > Hier ein Beispiel: > > <?xml version="1.0" encoding="utf-8"?> > <snapshot> > <header> > <serial>71878101986</serial> > <vin></vin> > <time>2013-03-05T06:57:42.0Z</time> > </header> > <data> > <value name="velocity" unit="kmh">283.67</value> > <value name="engine-speed" unit="rpm">6500.434</value>d > </data> > <gps lat="49.1564640" lon="9.3104110"> > <fix>3d</fix> > <ele>190.70</ele> > </gps> > </snapshot> > > Ideen waren bisher: > > 1 Leaflet mit GPX-Plugin https://github.com/mpetazzoni/leaflet-gpx > > 2 CartoDB mit entsprechender automatisierter Datenanbindung > > 3 Openlayers und OSM-Script zur GPX-Anbindung > http://wiki.openstreetmap.org/wiki/Openlayers_Track_example (aber mit > Openlayers 3) > > Als Endziel soll eine Karte entstehen, die wir auf unserem > Wordpress-Blog, vermutlich als iframe, einbinden können oder zumindest > hin verlinken können. Diese Karte sollte unser Fortkommen dokumentieren > und regelmäßig aktualisiert werden. Idealerweise sieht das ganze später > auch wie eine Route aus und nicht wie bei Google eine lange Reihe von > hundert Wegpunkten. Idealerweise kann man ferner auf einen Wegpunkt > klicken oder so und sieht dann in einem Pop-Up oder sonstwie die paar > fahrzeugspezifischen Werte, die wir im XML-Format mit erheben > (voraussichtlich Höhe, Außentemperatur etc.). > > Fallstricke sind dabei folgende: > > 1) > Wir erheben im Fahrzeug alle 10 Minuten (um Datenvolumen zu reduzieren) > einen Wegpunkt mit Zusatzdaten. Die XML-Datei hätte demnach bei einer > einstündigen Fahrt, wenn die Zündung ausgeht, 6 Wegpunkte erfasst. Diese > einzelnen fahrtenbasierten Dateien, das nur als Hintergrund, werden > stündlich an das Backend des Dienstleisters übertragen und auf unseren > FTP geschoben. Wenn Handynetz vorhanden ist. Das heißt, dass wir > vielleicht pro Stunde bei kurzen Fahrten 3 xml-Dateien neu reinbekommen > oder nach zwei Tagen, wenn wieder Handy-Empfang ist, gesammelt 10 > xml-Dateien. > > Irgendwie muss jetzt ein Skript auf dem FTP nachschauen, ob es neue > Daten gibt, die Daten auslesen und in die Karte bringen. > > 2) > Wenn ich es richtig verstehe, ist leaflet nur ein Skript, dass > client-seitig was ausführt. Wenn wir jetzt pro Wegpunkt 100 kb erzeugen, > dann aber ja voraussichtlich 10 Stunden am Tag fahren, dann haben wir > nach zwei Wochen in Summe Wegpunkte in der Größenordnung von Megabyte. > Wenn also clientseitig das Auslesen und Interpretieren der Daten > erfolgt, dann müssen unsere Website-Besucher, gerade auf einem mobile > device, ewig warten, bis sich die Karte aufbaut. Das spricht dann > irgendwie für CartoDB, wo alles bei denen lagert und man nur die Karte > erhält (so zumindest mein Verständnis). > > > **bisheriger Plan** > > - Cron-Job o.ä. fragt die XML-Dateien einmal ab ( die sind systematisch > benannt) > - XML wird ausgelesen, also: das > Relevante (Zeitstempel, Koordinaten?) wird ausgelesen, und in SQL-Datenbank > geworfen > - anderes Script liest jeweils in Laufzeit die Punkte aus und gibt sie in > einem Leaflet-kompatiblen Format aus. Idealerweise so, dass eine maximale > Menge an Punkten nicht überschritten wird und bei größeren Mengen erstmal > generalisiert wird. > > > **konkretisierter Plan** > > 1. Einlesen XML, XML-Parsing, Überprüfung eventueller Doppler, Schreiben in > SQL-Datenbank. In der Datenbank reicht im Prinzip eine Tabelle: > > tab rallye_karte_positionsdaten > > id (int, Index) > lat (float) > lon (float) > zeitstempel (timestamp) * > > * zeitangaben sind vom Logger immer UTC > > Diese drei Daten könnte ein Script nach dem XML-Parsing ja auch direkt > INSERTen. > > 2. Ausgabe: Herausfinden, wie viele Punkte sinnvollerweise dargestellt > werden, Ausgabe dann entsprechend notfalls etwas vereinfacht unter > Berücksichtigung des angezeigten Kartenausschnittes. Da müsste man > vermutlich etwas AJAXen oder in den sauren Apfel beißen und alles laden > oder eine passende Bib finden. Zweiter Punkt, der etwas Probleme > bereitet, ist ad-hoc. Verbindungslinien zwischen den angezeigten Punkten > würde > man vielleicht jeweils ad-hoc generieren, vermutlich ist das kein > Problem, weil man nur die richtige Reihenfolge der Punkte braucht (hat > man ja per Timestamp). > > **Arbeitsstand** > > 1) Kartengrundlage von mapbox: https://goo.gl/Pz63Pf > > 2) das parsing der XML in die Datenbank: > > <? > // Parst eine XML-Loggerdatei > // und schreibt den Datensatz (Annahme: pro XML nur einer!) > // in SQL-Datenbank > // Keine Überprüfung auf Doppler bis hier > > // Datenbankdaten > > // $db_url = ; > // $db_user = ; > // $db_pass = ; > // $db_name = ; > > // Pfad/URL der einzulesenden XML-Datei > $xmlFile = 'datei.xml'; > > // und hier geht es los mit dem XML-Parsing > > if (file_exists($xmlFile)) { > $xml = simplexml_load_file($xmlFile); > > > // geparste daten in variablen hauen und gleich bei jeder schauen, ob sie > überhaupt da sind, wenn nicht, dann verwerfen wir den ganzen datensatz, da > eh unbrauchbar > // dann also: exit. > > if (!$v_timestamp = $xml->header[0]->time) > exit; > > if(!$v_lat = $xml->gps[0]['lat']) > exit; > > if(!$v_lon = $xml->gps[0]['lon']) > exit; > > echo $v_lat; > > } else { > exit("Datei $xmlFile geht nicht auf...."); > } > > // so, jetzt an die Datenbank > > // DB-Verbindung herstellen > > $db = mysql_connect("$db_url", "$db_user", "$db_pass"); > mysql_select_db("$db_name",$db); > > // SQL-Statement und danach gleich an Datenbank schicken > > $sql = "INSERT INTO rallye_karte_positionsdaten (zeitstempel,lat,lon) > VALUES ('$v_timestamp','$v_lat','$v_lon')"; > $db_abfrage = mysql_query($sql,$db); > > ?> > > > 3) in Wordpress basteln wir derzeit ein Plugin für dieses parsing und > fügen eine weitere Spalte mit einem Infotextfeld in die Datenbanktabelle > ein. Nachträglich kann man dann zu jedem beliebigen eingelesenen > Koordinatenpunkt noch einen kurzen Infotext einfügen. Auf der Karte sind > entsprechende Punkte dann besonders gekennzeichnet und ankilckbar, dann > geht die Infobox mit dem Infotext auf. > > > **Aufgaben und Probleme** > > Die Daten auf die Karte bringen, dass ist aktuell die größte Hürde. Wir > wissen noch nicht ganz, wie jetzt diese Punkte da als Pop-up klickbar > werden. Auch ganz großes Problem ist die Datengeneralisierung, so dass > die Karte noch ladbar ist auf Handys etc. > > > Also, wer uns kurzfristig unterstützen kann, sichert sich nicht nur ein > großes Dankeschön, sondern auch ein goody aus einem Ort, den man nicht > mal im OSM gemappt hat. :-) > > Beste Grüße > > Sören > > > > _______________________________________________ Talk-de mailing list [email protected] https://lists.openstreetmap.org/listinfo/talk-de

