Re: [Talk-de] JOSM - Waypoints und Audio
Am 18.08.08 schrieb Bodo Meissner [EMAIL PROTECTED]: Wenn ich den Code richtig verstehe, wird nur ein XML-Tag time ausgewertet, nicht die Zeitangabe in cmt oder desc. Außerdem muß die Zeitangabe dem Format -MM-dd'T'HH:mm:ss entsprechen. Du brauchst also ein Programm, das beispielsweise ~ cmt18-AUG-08 13:33:03/cmt umwandelt in ~ time2008-08-18T13:33:03/time Keine Ahnung, ob das mit gpsbabel geht. Vielleicht könnte man in JOSM den Parser für GPX-Dateien erweitern, so daß er diese Zeitangaben in cmt und desc auch versteht. Gute Idee. Die allgemeine Code-Qualität in JOSM läßt eh sehr zu wünschen übrig. Hat gerade jemand Zeit, a) Das Parsen von cmt und desc, falls time nciht gefunden wird und b) das Durchprobieren von DateFormat.getDateTimeInstance() DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG) DateFormat.getDateTimeInstance(Locale.EN_US) DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.EN_US) einzubauen? Code liegt im SVN, der entstandene Patch kann halt an die josm-dev -Liste oder ein Ticket im Josm-track gehen. Marcus ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] JOSM - Waypoints und Audio
Bodo Meissner schrieb: Wenn ich den Code richtig verstehe, wird nur ein XML-Tag time ausgewertet, nicht die Zeitangabe in cmt oder desc. Außerdem muß die Zeitangabe dem Format -MM-dd'T'HH:mm:ss entsprechen. Du brauchst also ein Programm, das beispielsweise ~ cmt18-AUG-08 13:33:03/cmt umwandelt in ~ time2008-08-18T13:33:03/time Wenn man die Änderungen entsprechend vornimmt funktioniert es. Danke also soweit schonmal, dann ist klar wo das Problem liegt. Vielleicht könnte man in JOSM den Parser für GPX-Dateien erweitern, so daß er diese Zeitangaben in cmt und desc auch versteht. Das cmt-Attribut ist für Kommentare gedacht, exklusiv dort die Uhrzeit reinzuschreiben ist nicht sinnvoll. Den Parser zu erweitern wäre also sehr komfortabel für den Benutzer, aber im Grunde lt. Standard unnötig. Es wird doch noch jemand ein Garmin GPS mit Audio und JOSM benutzten?! Wie macht ihr das? Ich hole die GPS-Datei über gpsbabel -t -w -i garmin -f /dev/ttyUSB0 -o gpx -F track.gpx Grüße Roland ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] JOSM - Waypoints und Audio - Patch beiliegend
Roland Ramthun wrote, on 19.08.2008 11:43: Bodo Meissner schrieb: Vielleicht könnte man in JOSM den Parser für GPX-Dateien erweitern, so daß er diese Zeitangaben in cmt und desc auch versteht. Das cmt-Attribut ist für Kommentare gedacht, exklusiv dort die Uhrzeit reinzuschreiben ist nicht sinnvoll. Hallo Roland, da kann ich Dir nur zustimmen, aber das liegt wohl an Garmin. Wenn ich die Daten mit MapSource aus meinem Gerät hole, bekomme ich auch kein time-Feld, sondern die Zeit steht auch nur in cmt und desc. MapSource versteht das time-Feld auch Den Parser zu erweitern wäre also sehr komfortabel für den Benutzer, aber im Grunde lt. Standard unnötig. Da wir die Garmin-Firmware nicht ändern können, bleiben uns nur die Möglichkeiten, den Konverter (gpsbabel?) oder JOSM entsprechend zu erweitern. Es wird doch noch jemand ein Garmin GPS mit Audio und JOSM benutzten?! Wie macht ihr das? Ich benutze ein Garmin, habe aber noch nie mit Audio gearbeitet, sondern bisher nur mit Fotos. (Ich hätte sogar ein digitales Aufnahmegerät. Wäre gut, wenn JOSM auch MP3-Dateien verwenden könnte.) Ich hole die GPS-Datei über gpsbabel -t -w -i garmin -f /dev/ttyUSB0 -o gpx -F track.gpx Vorläufig könntest Du ein kleines Perl-Skript verwenden, das die cmt-Zeilen auswertet und entsprechende time-Zeilen einfügt. Ich habe mal probeweise mit einer von MapSource erzeugten GPX-Datei experimentiert. MapSource ist ziemlich unflexibel beim Auswerten, da kommt es auf die Reihenfolge der Tags an. (vermutlich kein richtiger XML-Parser) Wenn die time-Zeile nach der cmt-Zeile kommt, kann MapSource die Datei nicht einlesen. NH-TopTrans kommt damit klar. Wenn ich dass aus NH-TopTrans wieder eine GPX-Datei schreibe, ist MapSource mit dem Ergebnis zufrieden, nur fehlen dann Garmin-spezifische Erweiterungen. Da steht dann time zwischen ele und name. Wenn ich in der von MapSource erzeugten GPX-Datei die time-Zeile an der gleichen Stelle einfüge, kann MapSource die auch wieder lesen. JOSM ist die Reihenfolge der XML-Tags egal. Zusätzlich zu dem Problem, daß JOSM die Zeitangaben bisher nicht auswerten kann, verwendet JOSM wohl ein zu kleines Limit für die erlaubte Abweichung der Waypoints von den Trackpoints. Ich habe das mal für den ersten Punkt 001 überprüft. JOSM erlaubt eine Abweichung von 10.0e-7 (= 1.0e-6) mit einem Kommentar about 25m. Laut GPS-Track-Analyse beträgt der Abstand ca. 0,4m. (Keine Ahnung, ob das Programm richtig rechnet.) Die größte Abweichung gibt es bei Punkt 036 mit ca. 2.9e-5, laut GPS-Track-Analyse ca. 3,2m. Durch experimentelles Verändern des Limits habe ich festgestellt, daß bei 4.0e-4 nur noch Punkt 036 nicht zugeordnet wird, bei 5.0e-4 werden sämtliche Punkte zugeordnet. (Weitere Zwischenwerte habe ich nicht ausprobiert.) Wenn ich die unterschiedliche Abweichung in x- und y-Richtung und die Abhängigkeit von der geografischen Breite ignoriere, würde wohl ein Limit von 3.5e-3 etwa 25m entsprechen. Ich habe mal das Limit auf 1.0e-3 geändert und Code zum Parsen der Garmin-Zeiteinträge in cmt und desc eingebaut. Die unterschiedlichen Zeitzonen müssen aber außerhalb von JOSM korrigiert werden. (keine Ahnung, ob gpsbabel das kann) Bodo Index: src/org/openstreetmap/josm/data/gpx/WayPoint.java === --- src/org/openstreetmap/josm/data/gpx/WayPoint.java (revision 800) +++ src/org/openstreetmap/josm/data/gpx/WayPoint.java (working copy) @@ -48,6 +48,30 @@ } } + /** +* Convert a time stamp of the waypoint from the cmt or desc field +* into seconds from the epoch. Handles the date format as it is used by +* Garmin handhelds. Does not overwrite an existing timestamp (!= 0.0). +* Does nothing if specified key does not exist or text cannot be parsed. +* +* @param key The key that contains the text to convert. +*/ + public void setGarminCommentTime (String key) { + // do not overwrite time if already set + if (time != 0.0) { + return; + } + if (! attr.containsKey(key)) { + return; + } + // example date format 18-AUG-08 13:33:03 + SimpleDateFormat f = new SimpleDateFormat(dd-MM-yy HH:mm:ss); // ignore timezone + Date d = f.parse(attr.get(key).toString(), new ParsePosition(0)); + if (d != null /* parsing OK */) { + time = d.getTime() / 1000.0; /* ms = seconds */ + } + } + public int compareTo(WayPoint w) { return Double.compare(time, w.time); Index: src/org/openstreetmap/josm/gui/layer/GpxLayer.java === --- src/org/openstreetmap/josm/gui/layer/GpxLayer.java (revision 805) +++
Re: [Talk-de] JOSM - Waypoints und Audio - Patch beiliegend
Bodo Meissner schrieb: Das cmt-Attribut ist für Kommentare gedacht, exklusiv dort die Uhrzeit reinzuschreiben ist nicht sinnvoll. Hallo Roland, da kann ich Dir nur zustimmen, aber das liegt wohl an Garmin. Wenn ich die Daten mit MapSource aus meinem Gerät hole, bekomme ich auch kein time-Feld, sondern die Zeit steht auch nur in cmt und desc. MapSource versteht das time-Feld auch Ich habe mal probeweise mit einer von MapSource erzeugten GPX-Datei experimentiert. MapSource ist ziemlich unflexibel beim Auswerten, da kommt es auf die Reihenfolge der Tags an. (vermutlich kein richtiger XML-Parser) Wenn die time-Zeile nach der cmt-Zeile kommt, kann MapSource die Datei nicht einlesen. NH-TopTrans kommt damit klar. Wenn ich dass aus NH-TopTrans wieder eine GPX-Datei schreibe, ist MapSource mit dem Ergebnis zufrieden, nur fehlen dann Garmin-spezifische Erweiterungen. Da steht dann time zwischen ele und name. Wenn ich in der von MapSource erzeugten GPX-Datei die time-Zeile an der gleichen Stelle einfüge, kann MapSource die auch wieder lesen. JOSM ist die Reihenfolge der XML-Tags egal. Danke fürs Testen, das konnte ich nämlich nicht ohne Windows bzw. die passende Software. Zusätzlich zu dem Problem, daß JOSM die Zeitangaben bisher nicht auswerten kann, verwendet JOSM wohl ein zu kleines Limit für die erlaubte Abweichung der Waypoints von den Trackpoints. Ich habe das mal für den ersten Punkt 001 überprüft. JOSM erlaubt eine Abweichung von 10.0e-7 (= 1.0e-6) mit einem Kommentar about 25m. Laut GPS-Track-Analyse beträgt der Abstand ca. 0,4m. (Keine Ahnung, ob das Programm richtig rechnet.) Die größte Abweichung gibt es bei Punkt 036 mit ca. 2.9e-5, laut GPS-Track-Analyse ca. 3,2m. Durch experimentelles Verändern des Limits habe ich festgestellt, daß bei 4.0e-4 nur noch Punkt 036 nicht zugeordnet wird, bei 5.0e-4 werden sämtliche Punkte zugeordnet. (Weitere Zwischenwerte habe ich nicht ausprobiert.) Wenn ich die unterschiedliche Abweichung in x- und y-Richtung und die Abhängigkeit von der geografischen Breite ignoriere, würde wohl ein Limit von 3.5e-3 etwa 25m entsprechen. Ich habe mal das Limit auf 1.0e-3 geändert und Code zum Parsen der Garmin-Zeiteinträge in cmt und desc eingebaut. Das würde ich ähnlich sehen, auch wenn ich die Nebenwirkungen dort nicht so gut wie bei den anderen Änderungen abschätzen kann. Die unterschiedlichen Zeitzonen müssen aber außerhalb von JOSM korrigiert werden. (keine Ahnung, ob gpsbabel das kann) Da das dann nur noch Suchen-und-Ersetzen ist, sollte das für fast jeden Benutzer machbar sein. Vielen Dank auch für den Patch, den habe ich mit meinem Schnell-Patch aus der heutigen Mittagspause zusammengeführt und an die josm-dev-Liste gemailt, mal sehen was die zu den Änderungen sagen. Und hoffentlich commited es dann auch einer der Leute mit Schreibzugriff. Viele Grüße Roland ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
[Talk-de] JOSM - Waypoints und Audio
Hallo, ich wollte gerade ein kombiniertes GPX-Log mit Way- und Trackpoints und den dazugehörigen Audio-Track in JOSM laden. Dabei sprang er in folgende Stelle des Codes: /trunk/src/org/openstreetmap/josm/gui/preferences/AudioPreference.java if (untimedMarkersOmitted) { JOptionPane.showMessageDialog(Main.parent, tr(Some waypoints which were too far from the track to sensibly estimate their time were omitted.)); } Das Resultat ist, dass nur an ca. 1/3 aller Waypoints ein Audiofähnchen ist. Eine Systematik erkenne ich so nicht. Leider habe ich zu diesem Problem auf die Schnelle nichts finden können. Der erste Waypoint sieht so aus: wpt lat=49.751007641 lon=6.685312260 ele274.580200/ele name001/name cmt18-AUG-08 13:33:03/cmt desc18-AUG-08 13:33:03/desc symFlag, Blue/sym /wpt Diese Zeit ist die lokale Zeit. Der erste Trackpoint sieht so aus: trkpt lat=49.750884930 lon=6.685242439 ele275.074463/ele time2008-08-18T11:32:31Z/time /trkpt Diese Zeit ist UTC. Kann das ein Problem sein? Grüße Roland ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] JOSM - Waypoints und Audio
On Mon, 18 Aug 2008, Roland Ramthun wrote: Der erste Waypoint sieht so aus: wpt lat=49.751007641 lon=6.685312260 ele274.580200/ele name001/name cmt18-AUG-08 13:33:03/cmt desc18-AUG-08 13:33:03/desc symFlag, Blue/sym /wpt Diese Zeit ist die lokale Zeit. Der erste Trackpoint sieht so aus: trkpt lat=49.750884930 lon=6.685242439 ele275.074463/ele time2008-08-18T11:32:31Z/time /trkpt Diese Zeit ist UTC. Kann das ein Problem sein? Ja. ich glaube nicht, dass er mit der ersten Zeitangabe etwas anfangen kann. Vielleicht hilft Dir gpsbabel beim Konvertieren (auch wenn ich jedesmal fast verrückt werden, wenn ich gpsbabel irgendeine Kommandozeilenoption übergeben will). Ciao -- http://www.dstoecker.eu/ (PGP key available)___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] JOSM - Waypoints und Audio
Dirk Stöcker schrieb: Ja. ich glaube nicht, dass er mit der ersten Zeitangabe etwas anfangen kann. Vielleicht hilft Dir gpsbabel beim Konvertieren (auch wenn ich jedesmal fast verrückt werden, wenn ich gpsbabel irgendeine Kommandozeilenoption übergeben will). Ich habe an den Zeiten etwas herumgespielt, aber geholfen hat es nichts. Mein GPX-File liegt unter http://tmp.roland-ramthun.de/srv.php?file=track.txt Wenn man dazu eine beliebige WAV-Audio-Datei lädt, die lang genug ist, kommt der Hinweis. Normalerweise sollten dann ja an allen Waypoints die klickbaren Marker sein, sind sie aber nicht. Grüße Roland ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de
Re: [Talk-de] JOSM - Waypoints und Audio
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Roland Ramthun wrote, on 18.08.2008 21:33: | Dirk Stöcker schrieb: | | Ja. ich glaube nicht, dass er mit der ersten Zeitangabe etwas anfangen | kann. Vielleicht hilft Dir gpsbabel beim Konvertieren (auch wenn ich | jedesmal fast verrückt werden, wenn ich gpsbabel irgendeine | Kommandozeilenoption übergeben will). | | Ich habe an den Zeiten etwas herumgespielt, aber geholfen hat es nichts. Wenn ich den Code richtig verstehe, wird nur ein XML-Tag time ausgewertet, nicht die Zeitangabe in cmt oder desc. Außerdem muß die Zeitangabe dem Format -MM-dd'T'HH:mm:ss entsprechen. Du brauchst also ein Programm, das beispielsweise ~ cmt18-AUG-08 13:33:03/cmt umwandelt in ~ time2008-08-18T13:33:03/time Keine Ahnung, ob das mit gpsbabel geht. Vielleicht könnte man in JOSM den Parser für GPX-Dateien erweitern, so daß er diese Zeitangaben in cmt und desc auch versteht. Bodo -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkip6+IACgkQnMz9fgzDSqc2mQCgmqDaFgVAQ0bZBTHo826Aeh5n 9ngAn0jPHr5Nu1GBagFbeqDVNWuAIyhg =I+q4 -END PGP SIGNATURE- ___ Talk-de mailing list Talk-de@openstreetmap.org http://lists.openstreetmap.org/listinfo/talk-de