Christians Webseite        << zurueck        vor >>

KML vs GPX

KML und GPX sind zwei wichtige Formate wenn es darum geht GPS-Daten, Tracks oder Routen auszutauschen. Praktisch jedes moderne Navi-Programm kann mindestens eines davon bearbeiten. Beide Formate basieren auf einer XML-Grundstruktur im ASCII/Text-Format die leicht lessbar und auswertbar ist. Die Elementnamen und die Syntak sind unterschiedlich, aber die wesentlichen Koordinatenangaben sind in beiden enthalten.

KML

Die drei Buchstaben stehen für Keyhole Markup Language. Es ist ein Format zur Darstellung geographischer Daten und wird hauptsächlich von Google Maps und Google Earth verwendet. In komprimierter ZIP-Form wird die Bezeichnung in KMZ geändert.

Neben den eigentlichen Koordinaten-Informationen kann es auch umfangreiche Geometrien beschreiben die in der Kartographie benötigt werden. Für die Darstellung von Routen und das Navigieren sind diese Optionen ziemlich nutzlos. Weitergehende, umfassende Erläuterung des KML-Dateiformats gibt es z.B. bei ArcGIS oder OpenGeospatialConsortium oder bei Wikipedia.

Für die Navigation sind 2 Elemente besonders wichtig, bzw. ausreichend:

  • POINT, beschreibt einzelne, wichtige Wegpunkte
  • LINESTRING, ein Track, bestehend aus einer Kette von Punkten (coordinates) die durch Linien verbunden sind

Koordinatenangaben im KML sind immer in der folgenden Notation anzugeben: <Longitude>, <Latitude>, <Elevation>

Eine beispielhafte, minimale und spezifikationsgerechte Datei ist die folgende:

 
<?xml version="1.0" encoding="UTF-8"?>              # notwendiger Header
<kml xmlns="http://www.opengis.net/kml/2.2">        # notwendiger Header
  <Document>
    <Folder>
      <Placemark>                                   # Anfang des ersten Elements
        <name>Punkt 1</name>                        # Name
        <Point>                                     # Typ POINT 
          <coordinates>
            6.6417866,25.842897,0                   # Koordinaten
          </coordinates>
        </Point>
      </Placemark>                                  # Ende des Elements
      <Placemark>                                   # Begin des nächsten Elements
        <name>Route von Punkt 1 nach Punkt 1</name> # Name 
        <LineString>                                # Typ LINESTRING (=Track)
          <coordinates>
            6.64181,25.8429,0                       # Liste von Koordinatenpunkten
            6.642,25.84166,0
            ..
            6.64181,25.8429,0
          </coordinates>
        </LineString>
      </Placemark>                                  # Ende des Elements
    </Folder>
  </Document>
</kml>

GPX

Die drei Buchstaben stehen für GPS EXchange Format. Es ist ein sehr populäres Format der Firma TopoGrafix. Die Spezifikation ist auf der TopoGrafix-Webseite zu finden. GPX hat sich zum Quasi-Standard für den Austausch von GPS-Daten und Routen entwickelt.

Für die Navigation sind 2 Elemente besonders wichtig, bzw. ausreichend:

  • WAYPOINT, (wpt) beschreibt einzelne, wichtige Wegpunkte
  • TRACK, (trk) ein Track, bestehend aus einer Kette von Punkten (trkpt) die durch Linien verbunden sind

Die Spezifikation ist sehr strikt und verlangt dass WAYPOINTS und TRACKS in genau dieser Reihenfolge aufgelistet werden und nicht gemischt.

Koordinatenangaben im GPX sind immer in der folgenden Notation anzugeben (Beispiel Trackpoint):
<trkpt lat="Latitude" lon="Longitude"> <ele>Elevation" </ele> </trkpt>
(Die Reihenfolge der Auflistung der Latitude/Longitude-Werte ist damit verdreht gegenüber KML)

Eine beispielhafte, minimale und spezifikationsgerechte Datei ist die folgende:

 
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>                              # notwendiger Header
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="byConversion" version="1.1"  # notwendiger Header
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"                           # notwendiger Header
     xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">  # notwendiger Header
  <metadata>
    <name>NAME</name>
  </metadata>
  <wpt lat="25.842897" lon="6.6417866"> <ele>0</ele> <name>Punkt 1</name> </wpt>     # Typ WAYPOINT
  <trk>                                                                              # Typ TRACK
    <name>Route von Punkt 1 nach Punkt 2</name>                                      # Name des Tracks
    <trkseg>
    <trkpt lat="25.8429" lon="6.64181"> <ele>0</ele> </trkpt>                        # Liste von Koordinatenpunkten
    <trkpt lat="25.84166" lon="6.642"> <ele>0</ele> </trkpt>
    ..
    <trkpt lat="25.8429" lon="6.64181"> <ele>0</ele> </trkpt>
    </trkseg>
  </trk>
</gpx>						

Konvertierungen

Zur Konvertierung gibt es beliebig viele online und offline Konverter. Beide Dateiformate sind einfach lessbare ASCII-Textdateien und eine Bearbeitung ist auch mit jedem Texteditor leicht möglich.

Wenn man nur die Koordianten zur Verfügung hat dann kann man sich mit einem "Excel" die Textbausteine zusammenbauen. Wie bereits erwähnt sollte man daran denken dass die Lon/Lat Reihenfolge bei GPX umgedreht ist gegenüber KML.

Komplizierter wird der Formataufbau wenn zusätzlich die den Punkten zugeordneten Formatierungen oder Symbole übertragen werden sollen. Auch weil die Darstellung nicht bei allen Anzeigeprogrammen identisch interpretiert wird.

Links

GPSVisualizer https://www.gpsvisualizer.com/

MyGeodata Converter https://mygeodata.cloud/converter/kmz-to-gpx

GPX Editor, zum Editieren und Umwandeln von Tracks.