DE:GPX

From OpenStreetMap Wiki
Jump to navigation Jump to search

Das GPS Exchange Format, kurz GPX ist ein XML-Format, um geografische Koordinaten-Daten zu speichern. Es können Wegpunkte (waypoints), Wege (tracks) und ganze Routen (routes) in einer einfach weiter zu verarbeitenden Form gespeichert werden. Das Format ist offen und lizenzfrei. Es kann von jedem gebührenfrei eingesetzt werden und eine Mitarbeit an der Erweiterung des Standards ist möglich.

Alle in OpenStreetMap verwendeten GPS-Daten müssen in das GPX-Format konvertiert werden, bevor sie hochgeladen werden können.

Datei-Beispiel

Der folgende Dateiauszug ist ein Beispiel dafür, wie ein einzelner Wegepunkt (waypoint, als 'LAGORETICO' bezeichnet) und eine Reihe von Datenpunkten (track points) in einer gpx-Datei dargestellt werden.

<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.0">
	<name>Example gpx</name>
	<wpt lat="46.57638889" lon="8.89263889">
		<ele>2372</ele>
		<name>LAGORETICO</name>
	</wpt>
	<trk>
        <name>Example gpx</name>
        <number>1</number>
        <trkseg>
		  <trkpt lat="46.57608333" lon="8.89241667"><ele>2376</ele><time>2007-10-14T10:09:57Z</time></trkpt>
		  <trkpt lat="46.57619444" lon="8.89252778"><ele>2375</ele><time>2007-10-14T10:10:52Z</time></trkpt>
		  <trkpt lat="46.57641667" lon="8.89266667"><ele>2372</ele><time>2007-10-14T10:12:39Z</time></trkpt>
		  <trkpt lat="46.57650000" lon="8.89280556"><ele>2373</ele><time>2007-10-14T10:13:12Z</time></trkpt>
		  <trkpt lat="46.57638889" lon="8.89302778"><ele>2374</ele><time>2007-10-14T10:13:20Z</time></trkpt>
		  <trkpt lat="46.57652778" lon="8.89322222"><ele>2375</ele><time>2007-10-14T10:13:48Z</time></trkpt>
		  <trkpt lat="46.57661111" lon="8.89344444"><ele>2376</ele><time>2007-10-14T10:14:08Z</time></trkpt>
	    </trkseg>
    </trk>
</gpx>

Wie kann ich meine GPX-Track auf einer OSM-Karte anzeigen?

Auf der Seite track drawing websites werden Möglichkeiten dargesetllt, wie man GPX-Tracks auf OSM anzeigen kann. Auch kann andere software nützlich sein. Es gibt viele Möglichkeiten, GPX-Dateien darzustellen. Informationen zum Anzeigen einer GPX-Spuren, um OSM-Daten zu bearbeiten, finden sich unter Editoren.

Problemlösung

Warum wurde meine GPX-Datei nicht richtig hochgeladen?

Ihre GPX sollte aus Trackpoints mit gültigen Zeitstempeln bestehen. Das ele(vation)-Tag ist optional und wird standardmäßig auf 0 gesetzt. Beachten, wenn Du ein Garmin GPS-Gerät verwendest: Viele dieser Geräte haben die Möglichkeit, eine Spur ohne Zeitstempel zu speichern. Derartig gespeicherte Spuren können daher nicht in OSM importiert werden. Stelle stattdessen sicher, dass Du GPX-Dateien, die aus den aktiven Spuren erstellt wurden, vom Gerät hochlädst. Verzichte darauf, einfach alle gespeicherten Spuren hochzuladen.

Auch bei Geräten mit persischem Gebietsschema verwenden einige Anwendungen beim Export nach GPX persisch-arabische Ziffern für den Zeitstempel Dies ist für viele Softwareprogramme - wie auch OSM - nicht lesbar ist. Bis zu einem Fix für den GPX-Import musst Du also also entweder direkt aktive Spuren vom Gerät hochladen oder die Zeitstempel der exportierten Spuren konvertieren und dann hochladen. Dafür kannst Du folgendes Perl-Script verwenden, um das persischem Gebietsschema umzuwandeln.

Wenn Du Software schreibst, die GPX-Dateien erstellt, verwenden einen Validierer (z.B. xmlvalidation) mit Schemavalidierung, um mögliche Probleme zu finden. Wenn Du ein Encoding-Tag hinzufügst, wird der Wert "UTF-8" akzeptiert, während "utf8" (kein Bindestrich) nicht akzeptiert wird.

Das folgende Format einer GPX-Dateien ist akzeptabel:

<?xml version="1.0"?>
<gpx
   version="1.0"
   creator="GPSBabel - http://www.gpsbabel.org"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns="http://www.topografix.com/GPX/1/0"
   xsi:schemaLocation="http://www.topografix.com/GPX/1/0
   http://www.topografix.com/GPX/1/0/gpx.xsd">
<time>2005-11-07T14:00:09Z</time>
<trk>
  <name>ACTIVE LOG</name>
<trkseg>
   <trkpt lat="52.564001083" lon="-1.826841831">
     <ele>115.976196</ele>
     <time>2005-11-07T12:03:31Z</time>
   </trkpt>
</trkseg>
</trk>
</gpx>

GPX 1.1 wird ebenso akzeptiert:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<gpx version="1.1"
    creator="EMTAC BTGPS Trine II DataLog Dump 1.0 - http://www.ayeltd.biz"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.topografix.com/GPX/1/1"
    xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<metadata>
<name>GPS Receiver track log</name>
<desc>Tallinn (car)</desc>
<author>
<name>Michael Collinson</name>
<email id="mikes" domain="ayeltd.biz" />
<link href="http://www.ayeltd.biz"><text>AYE Ltd.</text></link>
</author>
<time>2007-10-02T09:22:06Z</time>
<keywords>Estonia, Tallinn, A. Weizbergi</keywords>
<bounds minlat="59.4367664166667" maxlat="59.4440920666666" minlon="24.74394385" maxlon="24.7971432"/>
</metadata>
<trk>
<src>Logged by Michael Collinson using EMTAC BTGPS Trine II</src>
<link href="http://www.ayeltd.biz"><text>AYE Ltd.</text></link>
<trkseg>
    <trkpt lat="59.4408327" lon="24.74516185">
        <ele>44</ele>
        <time>2007-10-02T07:54:30Z</time>
        <fix>3d</fix>
        <hdop>300</hdop><vdop>300</vdop><pdop>300</pdop>
    </trkpt>
</trkseg>
</trk>
</gpx>

Es gibt zwei Fälle, die dazu führen, dass Daten nicht importiert werden. Erstens werden keine GPS-Punkte ohne Zeitstempel importiert, da sie u.a. zur Berechnung der Geschwindigkeit verwendet werden sollen. Zweitens werden keine Wegpunkte importiert. Besteht Deine Datei nur aus Wegepunkte wird nichts importiert. Öffnen und Speichern mit GPX Editor kann solche Probleme lösen. Diese Programm kann anonymisiert Zeitstempel zufügen, wenn diese fehlen.

Wenn Deine GPX-Datei sich nicht mit Zeitstempel versehen lässt, kannst Du das JOSM-Plugin EditGPX verwenden. Öffne die GPX-Date. Klicke dann auf das Symbol GPX-Tracks bearbeiten. Wähle Deine GPX-Datei im Popup aus. Klicke dann mit der rechten Maustaste auf den neue GPX-Layer und wandle diesen in einen "GPX-Layer mit anonymisierter Zeit" um. Speicher diesen neuen GPX-Layer als Datei und lade sie nach OSM hoch.

Kommandozeilen-Nutzer könnne folgende Aufruf verwenden (z.B. in einer Bash-Shell auf einem GNU/Linux-System):

$ xmlstarlet ed -N x=http://www.topografix.com/GPX/1/0 -N y=http://www.topografix.com/GPX/1/1 \
    -s '//x:trkpt|//y:trkpt' -t elem -n time -v 1970-01-01T00:00:00Z track.gpx > track-nulltime.gpx

Tracks können nicht hochgeladen werden, wenn die Datenformate nicht korrekt sind, z.B. gibt mein GPS-Setup gelegentlich einen NaN als Höhenwert an. Das Löschen dieser Zeilen aus der Datei behebt den Upload.

Eine weitere Problem sind Undzeichen "&" innerhalb von Wegpunktnamen - z.B.

<wpt lat="-20.089861" lon="57.511535">
    <name>The Grand Mauritian resort & spa</name>
</wpt>

das fürht zu einem "Generic XML parse error", aber:

<wpt lat="-20.089861" lon="57.511535">
	<name>The Grand Mauritian resort and spa</name>
</wpt>

funktioniert gut.

Ein weiterer Grund für einen Importfehler kann auf der Serverseite liegen. Bitte besuche die Platform-Status-Seite], um zu sehen, ob ein technisches Problem bekannt ist.

Warum sind die Punkte auf meinen Track weit auseinander?

Dies liegt daran, dass das GPS-Gerät (normalerweise ein Garmin) auf "Auto" eingestellt ist, was Platz spart, indem es weniger Punkte auf Geraden aufzeichnet. Es ist normalerweise kein Problem in ländlichen Gebieten, aber es ist nicht sehr nützlich für die Stadtplanung. Um mehr Punkte aufzunehmen, gehe zum Menü für die Spureneinstellungen auf dem GPS-Gerät und ändere die Aufzeichnungsmethode entweder auf "Zeit" oder "Entfernung".

  • Zeit: Mit der Einstellung Zeit wird alle 'x' Sekunden/Minuten/Stunden ein Punkt aufgezeichnet. Dies kann bei einigen GPS-Geräten geändert werden. Diese Einstellung verbraucht den Speicher schnell, erhöht aber die Punkte erheblich. Der Nachteil dieser Einstellung ist, dass bei langsamer Bewegung mit dem GPS-Gerät die Punkte dicht gepackt werden. Beispielsweise haben viele Garmin GPS's eine maximale Tracklog-Kapazität von 10.000 Punkten. (Beachte dass einige Geräte neben dem normalen Tracklog auch das Speichern eines Protokolls auf einer Speicherkarte erlauben.) Die Einstellung eines Zeitintervalls von 1 Sekunde führt normalerweise zu fast 3 Stunden Mapping (immer werden einige Punkte aufgrund von Fehlern und Satellitenverfügbarkeit nicht geschrieben). Für schnelles Fahren auf der Straße liefert ein Intervall von 1 Sekunde sehr gute Spurinformationen. Das 1-Sekunden-Intervall eignet sich auch gut für Radtouren in städtischen Gebieten. Beim Gehen kann die Geschwindigkeit ohne Verlust der Spurinformation auf 2 oder 3 Sekunden reduziert werden. Das Intervall kann auch erhöht werden, wenn die Abbildungszeit verlängert werden muss, aber versuche unnötige Zeitintervalle zu vermeiden. Du kannst das Zeitintervall spontan ändern. Das ist nützlich, wenn Du länger an einem Ort bleibst. Erfahrene Kartenzeichner verwenden in der Regel eine Einstellung von 1 Punkt/s, um unter allen Kartenbedingungen beste Ergebnisse zu erzielen. Einige Vorteile der Zeiteinstellung sind, dass die Relativgeschwindigkeit anhand des Abstands beurteilt werden kann. Es gibt mehr Punkte, wenn man für Kurven langsamer wird und weniger auf Geraden, wo man weniger Punkte benötigen.
  • Entfernung: Mit der Einstellung Entfernung werden die Punkte alle x Meter erfasst. Dies kann bei einigen GPS-Geräten geändert werden. Diese Einstellung verbraucht den Speicher schnell, wenn auch relativ zu deiner Geschwindigkeit. Der Nachteil dieser Methode ist, dass bei schneller Fahrt auf geraden Straßen (Autobahnen/Highways) unnötige Punkte erfasst werden. Auch wenn Du einen kleinen Bereich verfolgen willst und wenn der x-Wert zu hoch ist, wird die Route ungenau sein. Im Allgemeinen kann die Entfernungsaufzeichnung die Feinheiten von Kurven und Richtungsänderungen, insbesondere in städtischen Gebieten, ungenau darstellen.
  • Wrapping: Wenn eine Option zum Ein- und Ausschalten der Wrappingfunktion verfügbar ist, wird empfohlen, diese auszuschalten. Das Wrapping bedeutet, dass das GPS-Gerät, wenn es voll ist, Platz schafft, um den letzten Abschnitt der Route aufzunehmen, indem es den Anfang der Route löscht. Der Anfang wird Punkt für Punkt gelöscht, und zwar in der gleichen Geschwindigkeit, mit der neue Punkte erstellt werden. Eine Ausnahme wäre, wenn Du bei einigen Garmin-Modellen Trackdaten auf einer Datenkarte protokollieren kannst. Die Anfangsdaten werden aus dem eingebauten Speicher des Geräts gelöscht, aber nicht von der Datenkarte.

Einen GPX-Track auf einer OSM-Karte anzeigen

Die (vermutlich) einfachste Methode, einen GPS-Track auf OSM darzustellen, ist die Verwendung der UMap.

Siehe auch