JOB: Replay / Abspielen von Tracks mit OpenLayers

Hallo,

ich bin neu hier und auf dem Gebiet der Kartendarstellung mit OSM. Habe die Karten bisher “nur” auf meinem Garmin benutzt.
Nach ein paar Tagen lesen und informieren glaube ich, die grundlegendsten Dinge verstanden zu haben.

Aus einem GPS-Tracker habe ich eine Logdatei, die über einen Zeitraum die Position, Höhe, Geschwindigkeit, Kompass u.ä. enthält.
Diese “Fahrt” möchte ich nun gern mit Hilfe von OpenLayers und OSM in Echtzeit “abspielen”.
Also den Track auf einer ausgenordeten Karte im Sekundentakt aktualisiert an der Position zentriert darstellen.
Zusätzlich sollen ausgewählte Trackinformationen neben der Karte in Boxen dargestellt werden.

Die Trackdaten liegen als CSV-Datei vor.
Ich suche einen Programmierer, der mir das - natürlich gegen Bezahlung - umsetzen kann.

Wenn es einen separaten Bereich für Jobangebote gibt, bitte ich um Nachsicht und Hinweis.

Danke + Grüße :slight_smile:
Dennis

Meinst du sowas?

https://github.com/rodneythellama/gpxanim

(siehe auch Beispiel-Video)

(irgendwo in dem weiten Neuland gibt es glaube ich auch noch ein jar-File, welches das Ganze ein bisschen einfacher macht - ich finde es aber nicht mehr…)

Danke Thomas, sieht super aus, ist aber nicht ganz das was ich mir vorstelle.
Im Grunde brauche ich eine kleine Webseite, die das mit Hilfe von Javascript, OSM und OpenLayers umsetzt.
Kein Video, keine flüssige “animierte” Ausgabe, eher was minimalisiertes, in Sekundenabständen aktualisiert.

Nahmd,

Minimalisiert klingt gut. (nur mit FF getestet)

Gruß Wolf

Gefällt mir sehr.

Wie bzw. mit was baust Du die CSV-Datei zusammen?

Ja, mir auch, bis auf das NSA-Zielkreuz. :wink:

Nahmd,

GpsBabel kann GPX lesen, nah beieinander liegende Punkte tilgen und CSV schreiben.

Hmpf!

Gruß Wolf

Der Wolf ist einfach der Hammer. Der schüttelt solche Sachen immer irgendwie aus dem Ärmel.

Sieht alles sehr gut aus!

Wo wir dann schon bei Animationen sind:

Gibt es auf Basis von OSM-Kacheln so etwas, womit man z.B. einen Startpunkt und einen Zielpunkt definieren kann, und dann wird eine Art Film generiert, bei dessen Start vom Startpunkt in einem detaillierten Zoom eine ballistische Flugbahn der Kamera simuliert wird, welche also quasi heraus-zoomt und dann beim Zielpunkt wieder hereinzoomt?

Also automtisch raus- und reinzommen mit gleichzeitiger Bewegung der Kamera vom Start zum Ziel?

Sowas wie bei Bern?

http://ol3js.org/en/master/examples/animation.html

Edit: Gefunden unter: http://ol3js.org/en/master/examples/

Nahmd,

Es ruckelt ein wenig.

Gruß Wolf

Hallo Wolf, mir bleibt die Spucke weg. Super. Das ist schon fast das, was ich brauche. :slight_smile:
Mit Deiner Erlaubnis nehme ich das mal so und passe es meinen Bedürfnissen an.
Mal sehen, ob ich das hinbekomme.

Nahmd,

Gerne. Und bitte lies den dritten und letzten Absatz unter “Nutzung” auf dieser Seite und denke dabei an Deinen ersten Beitrag. :stuck_out_tongue:

Gruß Wolf

Ich hab das mal weiter minimalisiert und teilweise auch “maximalisiert”.
Maximalisierung: Geschwindigkeit und Pipifax anzeigen war mir wichtig, auch an der Aufbereitung bisschen Feintuninig betrieben. (Wenn ich viel Langeweile hab bau ich da noch statt Pegel Amaturen/Tachos per CSS rein (Alternativ mache ich die Skala ganz).)

Minimalisierung: Mit GPSbabel bin ich zwar halbwegs klargekommen, aber die CSV-Lösung hat mir von Anfang an nicht gefallen - vor allem, wenn man sowas öfters machen möchte. Wozu brauch ich 2 Files mit identischen Daten?
Daher habe ich mir von einem befreundeten (nicht-OSM-Kundigen-)Programmierer mal was zurechtstricken lassen, was nur auf den GPX-Track zugreift und im Ergebnis trotzdem das Selbe macht:
http://www.mydanmark.de/osm/tracktracking/ (siehe Quellcode)
Hier wird der Aufruf der CSV durch Code ersetzt, der das GPX in einen Array holt und dort zerbröselt. (Meine bescheidene Übersetzung der Arbeiten als JS-Dau ;))
klartext:

Zusätzlich wird noch die Zeitzone korrekt gesetzt, wenn sie im GPX nicht angepasst/angegeben ist.

  • Anmerkung: Das Script liest alles aus, was im GPX vorhanden ist. Wenn im GPX kein km/h enthalten ist, steht km/h in der Seite immer auf Null. Spät heute, aber wahrscheinlich werde ich irgendwann noch eine Prüfung auf leere (XML-)Tags einbauen (oder einbauen lassen) und bei NULL die entfernen.

  • Anmerkung: zum Umrechnen GPX vs CSV wird Jquery verwendet. Möglicherweise geht das auch irnkwie™ mittels OL, wenn jemand Anregungen diesbezüglich hat, die ein Nicht-OSM- und nicht OL-kundiger Programmierer versteht, wäre ganz schnafte auf “weiteren” Traffic verzichten zu können.

  • Anmerkung: Ich hab “mein” “Projekt” zwischenzeitlich mit einem 20MB fetten GPX (auf einem recht leistungsstarken Rechner und wirklich zukunftssicherer Bandbreite) getestet und da stellt sich raus, dass das JS am Anfang recht lang zu malen hat. (Nicht nur) ich hab da jetzt ne Weile dran rumgefrickelt und grad leider keine Ambitionen mehr einen Test mit der ursprünglichen GPX+CSV-Lösung zu machen um zu verifizieren ob das am Gerechne liegt oder ein generelles Problem ist.
    Vielleicht hat ja wer ne Idee dazu, ansonsten setz ich mich die Tage nochmal dran.

  • Anmerkung: ääh vergessen.

paar technische Fragen noch dazu:

  • Gibt es eine Möglichkeit das GPX schneller abzuspielen OHNE das Auslesen der Punkte (pointindex) zu verringern?
  • pause, vorspulen, schnell/langsam etc. wäre eine recht nützliche Geschichte (wie man in meinem Beispieltrack sieht). Gibt es da einfache Lösungen?

Keiner ne Idee dazu?

Die Pause zwischen zwei Aktualisierungen ist die 1000 in Zeile 149. Da 500 einsetzen und es geht doppelt so schnell, sofern der Rechner mitmacht mit Aktualisieren… Die Zahlen sind “Millisekunde Pause”.

Das mit Schnelllauftaste zu machen, müsste auch gehen. Rückwärts geht sicher auch (ein pointIndex-1 in Zeile 138 und danach noch Abprüfen auf <0). Aber das macht Arbeit: Oberfläche schön machen, Testen … also schon “einfach”, aber kostet Zeit.

Ah Klasse, danke.