Datenformate (Geodaten)
Die nebenstehende Karte zeigt eine Kurzstrecke von ca. 65 Metern, die in wenigen Sekunden zurückgelegt wurde und neun Trackpunkte umfasst; dazu das Geschwindigkeit- Steigungs- und Höhenprofil. Aufgenommen mit MapFactor, dargestellt mit ShowGPX.
Alle nachfolgenden Quelltexte basieren auf diesem Datenmaterial. Benötigte Konvertierungen wurden mit MyGeodata Cloud vorgenommen. Manchmal wirft der Konverter Fehlermeldungen bzw. gibt Warnungen mit aus, die hier aber ignoriert werden.
Die rudimentärsten Daten bietet wohl NMEA (Nautik), während der Code von KML (Google Earth) doch recht aufgebläht erscheint.
GPX
Das GPS Exchange Format GPX (Dateiendung .gpx) basiert auf dem XML-Standard und dient zur Speicherung von Geodaten.
GPX-Grundstruktur:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx version="1.1" creator="Ersteller der Datei">
<metadata> <!-- Metadaten --> </metadata>
<wpt lat="xx.xxx" lon="yy.yyy"> <!-- Attribute des Wegpunkts --> </wpt>
<!-- weitere Wegpunkte -->
<rte>
<!-- Attribute der Route -->
<rtept lat="xx.xxx" lon="yy.yyy"> <!-- Attribute des Routenpunkts --> </rtept>
<!-- weitere Routenpunkte -->
</rte>
<!-- weitere Routen -->
<trk>
<!-- Attribute des Tracks -->
<trkseg>
<trkpt lat="xx.xxx" lon="yy.yyy"> <!-- Attribute des Trackpunkts --> </trkpt>
<!-- weitere Trackpunkte -->
</trkseg>
<!-- weitere Track-Segmente -->
</trk>
<!-- weitere Tracks -->
</gpx>
GPX-Recording (MapFactor Navigator) der o.a. neun Trackpunkte
(Alle Zeilenumbrüche zur besseren Übersichtlickeit hinzugefügt, das MFN-GPX ist Text ohne Umbrüche)
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" creator="com.mapfactor.navigator">
<trk>
<name>2023-07-20_11-19-16.gpx</name>
<trkseg>
<trkpt lat="51.609688" lon="7.436918"><ele>128.00</ele><time>2023-07-20T09:21:06Z</time></trkpt>
<trkpt lat="51.609688" lon="7.436918"><ele>128.00</ele><time>2023-07-20T09:21:07Z</time></trkpt>
<trkpt lat="51.609692" lon="7.436914"><ele>128.00</ele><time>2023-07-20T09:21:08Z</time></trkpt>
<trkpt lat="51.609707" lon="7.436892"><ele>129.00</ele><time>2023-07-20T09:21:09Z</time></trkpt>
<trkpt lat="51.609734" lon="7.436848"><ele>129.00</ele><time>2023-07-20T09:21:10Z</time></trkpt>
<trkpt lat="51.609806" lon="7.436774"><ele>129.00</ele><time>2023-07-20T09:21:11Z</time></trkpt>
<trkpt lat="51.609901" lon="7.436738"><ele>129.00</ele><time>2023-07-20T09:21:12Z</time></trkpt>
<trkpt lat="51.610043" lon="7.436688"><ele>128.00</ele><time>2023-07-20T09:21:13Z</time></trkpt>
<trkpt lat="51.610256" lon="7.436642"><ele>128.00</ele><time>2023-07-20T09:21:14Z</time></trkpt>
</trkseg>
</trk>
</gpx>
Dieselben Trackpunkte nach mehrfacher Umwandlung: MapFactor → GPX → Google Maps → KML → MyGeodata Cloud → GPX
<?xml version="1.0"?>
<gpx version="1.1" creator="GDAL 2.2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ogr="http://osgeo.org/gdal" 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><bounds minlat="51.609687999999998" minlon="7.436642000000000" maxlat="51.610256000000000" maxlon="7.436918000000000"/></metadata>
<trk>
<name>2023-07-20_11-19-16.gpx</name>
<extensions>
<ogr:Dauer>0 Minuten und 8 Sekunden</ogr:Dauer>
<ogr:Durchschnittsgeschwindigkeit>30,3 km/h</ogr:Durchschnittsgeschwindigkeit>
<ogr:Entfernung>0</ogr:Entfernung>
<ogr:he>1 km</ogr:he>
</extensions>
<trkseg>
<trkpt lat="51.609688" lon="7.436918">
</trkpt>
<trkpt lat="51.609692" lon="7.436914">
</trkpt>
<trkpt lat="51.609707" lon="7.436892">
</trkpt>
<trkpt lat="51.609734" lon="7.436848">
</trkpt>
<trkpt lat="51.609806" lon="7.436774">
</trkpt>
<trkpt lat="51.609901" lon="7.436738">
</trkpt>
<trkpt lat="51.610043" lon="7.436688">
</trkpt>
<trkpt lat="51.610256" lon="7.436642">
</trkpt>
</trkseg>
</trk>
</gpx>
GML
Die Geography Markup Language GML (Dateiendung .gml) ist eine Auszeichnungssprache zum Austausch von Geoobjekten und weiterer Daten im XML-Standard. GML wird vom Open Geospatial Consortium (OGC) festgelegt uund liegt zur Zeit in der Version 3.2.1 vor.
KML, KMZ
KML (Keyhole Markup Language, Dateiendung .kml oder .kmz) ist eine Auszeichnungssprache für Geodaten und basiert auf dem XML-Standard. Sie wurde vor allem durch Google Earth bekannt und kann sowohl Raster- als auch Vektordaten beinhalten.
Das Format KMZ enthält ZIP-komprimierte KML-Daten, die von Endgeräten auch gepackt eingelesen werden können.
Hier die KML-Datei der o.a. neun Wegpunkte, die Google Maps nach Einlesen der GPX-Daten ausgibt.
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>Unbenannte Karte</name>
<description/>
<Style id="icon-123-normal">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/123-red-dot.png</href>
</Icon>
<hotSpot x="16" xunits="pixels" y="32" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-123-highlight">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/123-red-dot.png</href>
</Icon>
<hotSpot x="16" xunits="pixels" y="32" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1.1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-123">
<Pair>
<key>normal</key>
<styleUrl>#icon-123-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-123-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="icon-61-normal">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/61-green-dot.png</href>
</Icon>
<hotSpot x="16" xunits="pixels" y="32" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>0</scale>
</LabelStyle>
</Style>
<Style id="icon-61-highlight">
<IconStyle>
<scale>1.1</scale>
<Icon>
<href>https://www.gstatic.com/mapspro/images/stock/61-green-dot.png</href>
</Icon>
<hotSpot x="16" xunits="pixels" y="32" yunits="insetPixels"/>
</IconStyle>
<LabelStyle>
<scale>1.1</scale>
</LabelStyle>
</Style>
<StyleMap id="icon-61">
<Pair>
<key>normal</key>
<styleUrl>#icon-61-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#icon-61-highlight</styleUrl>
</Pair>
</StyleMap>
<Style id="line-0288D1-5000-normal">
<LineStyle>
<color>ffd18802</color>
<width>5</width>
</LineStyle>
</Style>
<Style id="line-0288D1-5000-highlight">
<LineStyle>
<color>ffd18802</color>
<width>7.5</width>
</LineStyle>
</Style>
<StyleMap id="line-0288D1-5000">
<Pair>
<key>normal</key>
<styleUrl>#line-0288D1-5000-normal</styleUrl>
</Pair>
<Pair>
<key>highlight</key>
<styleUrl>#line-0288D1-5000-highlight</styleUrl>
</Pair>
</StyleMap>
<Folder>
<name>Beispiel-Datenformat_GPX (mapfactor).gpx</name>
<Placemark>
<name><![CDATA[Start von "2023-07-20_11-19-16.gpx"]]></name>
<description><![CDATA[Donnerstag, 20. Juli 2023, 11:21 MESZ<br>Höhe: 128 m]]></description>
<styleUrl>#icon-61</styleUrl>
<Point>
<coordinates>
7.436918,51.609688,128
</coordinates>
</Point>
</Placemark>
<Placemark>
<name><![CDATA[Ende von "2023-07-20_11-19-16.gpx"]]></name>
<description><![CDATA[Donnerstag, 20. Juli 2023, 11:21 MESZ<br>Höhe: 128 m]]></description>
<styleUrl>#icon-123</styleUrl>
<Point>
<coordinates>
7.436642,51.610256,128
</coordinates>
</Point>
</Placemark>
<Placemark>
<name>2023-07-20_11-19-16.gpx</name>
<description><![CDATA[Die Statistiken basieren auf importierten Daten.<br><br>Donnerstag, 20. Juli 2023, 11:21 MESZ<br>Entfernung: 0,1 km<br>Dauer: 0 Minuten und 8 Sekunden<br>Durchschnittsgeschwindigkeit: 30,3 km/h<br>Minimale Höhe: 129 m<br>Maximale Höhe: 129 m<br>Anstieg (insgesamt): 0 m<br>Gefälle (insgesamt): 0 m]]></description>
<styleUrl>#line-0288D1-5000</styleUrl>
<LineString>
<tessellate>1</tessellate>
<coordinates>
7.436918,51.609688,128
7.436914,51.609692,128
7.436892,51.609707,129
7.436848,51.609734,129
7.436774,51.609806,129
7.436738,51.609901,129
7.436688,51.610043,128
7.436642,51.610256,128
</coordinates>
</LineString>
</Placemark>
</Folder>
</Document>
</kml>
Hier die KML-Datei der o.a. neun Wegpunkte, die MyGeodata Cloud nach Umwandeln der GPX-Daten in KML ausgibt.
<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Folder><name>waypoints</name>
</Folder>
<Folder><name>routes</name>
</Folder>
<Folder><name>tracks</name>
<Placemark>
<name>2023-07-20_11-19-16.gpx</name>
<Style><LineStyle><color>ff0000ff</color></LineStyle><PolyStyle><fill>0</fill></PolyStyle></Style>
<MultiGeometry><LineString><coordinates>7.436918,51.609688 7.436918,51.609688 7.436914,51.609692 7.436892,51.609707 7.436848,51.609734 7.436774,51.609806 7.436738,51.609901 7.436688,51.610043 7.436642,51.610256</coordinates></LineString></MultiGeometry>
</Placemark>
</Folder>
<Folder><name>route_points</name>
</Folder>
<Folder><name>track_points</name>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">0</SimpleData>
<SimpleData name="ele">128</SimpleData>
<SimpleData name="time">2023/07/20 09:21:06+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436918,51.609688</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">1</SimpleData>
<SimpleData name="ele">128</SimpleData>
<SimpleData name="time">2023/07/20 09:21:07+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436918,51.609688</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">2</SimpleData>
<SimpleData name="ele">128</SimpleData>
<SimpleData name="time">2023/07/20 09:21:08+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436914,51.609692</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">3</SimpleData>
<SimpleData name="ele">129</SimpleData>
<SimpleData name="time">2023/07/20 09:21:09+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436892,51.609707</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">4</SimpleData>
<SimpleData name="ele">129</SimpleData>
<SimpleData name="time">2023/07/20 09:21:10+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436848,51.609734</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">5</SimpleData>
<SimpleData name="ele">129</SimpleData>
<SimpleData name="time">2023/07/20 09:21:11+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436774,51.609806</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">6</SimpleData>
<SimpleData name="ele">129</SimpleData>
<SimpleData name="time">2023/07/20 09:21:12+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436738,51.609901</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">7</SimpleData>
<SimpleData name="ele">128</SimpleData>
<SimpleData name="time">2023/07/20 09:21:13+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436688,51.610043</coordinates></Point>
</Placemark>
<Placemark>
<ExtendedData><SchemaData schemaUrl="#track_points">
<SimpleData name="track_fid">0</SimpleData>
<SimpleData name="track_seg_id">0</SimpleData>
<SimpleData name="track_seg_point_id">8</SimpleData>
<SimpleData name="ele">128</SimpleData>
<SimpleData name="time">2023/07/20 09:21:14+00</SimpleData>
</SchemaData></ExtendedData>
<Point><coordinates>7.436642,51.610256</coordinates></Point>
</Placemark>
</Folder>
<Schema name="tracks" id="tracks">
<SimpleField name="cmt" type="string"></SimpleField>
<SimpleField name="desc" type="string"></SimpleField>
<SimpleField name="src" type="string"></SimpleField>
<SimpleField name="link1_href" type="string"></SimpleField>
<SimpleField name="link1_text" type="string"></SimpleField>
<SimpleField name="link1_type" type="string"></SimpleField>
<SimpleField name="link2_href" type="string"></SimpleField>
<SimpleField name="link2_text" type="string"></SimpleField>
<SimpleField name="link2_type" type="string"></SimpleField>
<SimpleField name="number" type="int"></SimpleField>
<SimpleField name="type" type="string"></SimpleField>
</Schema>
<Schema name="track_points" id="track_points">
<SimpleField name="track_fid" type="int"></SimpleField>
<SimpleField name="track_seg_id" type="int"></SimpleField>
<SimpleField name="track_seg_point_id" type="int"></SimpleField>
<SimpleField name="ele" type="float"></SimpleField>
<SimpleField name="time" type="string"></SimpleField>
<SimpleField name="magvar" type="float"></SimpleField>
<SimpleField name="geoidheight" type="float"></SimpleField>
<SimpleField name="cmt" type="string"></SimpleField>
<SimpleField name="desc" type="string"></SimpleField>
<SimpleField name="src" type="string"></SimpleField>
<SimpleField name="link1_href" type="string"></SimpleField>
<SimpleField name="link1_text" type="string"></SimpleField>
<SimpleField name="link1_type" type="string"></SimpleField>
<SimpleField name="link2_href" type="string"></SimpleField>
<SimpleField name="link2_text" type="string"></SimpleField>
<SimpleField name="link2_type" type="string"></SimpleField>
<SimpleField name="sym" type="string"></SimpleField>
<SimpleField name="type" type="string"></SimpleField>
<SimpleField name="fix" type="string"></SimpleField>
<SimpleField name="sat" type="int"></SimpleField>
<SimpleField name="hdop" type="float"></SimpleField>
<SimpleField name="vdop" type="float"></SimpleField>
<SimpleField name="pdop" type="float"></SimpleField>
<SimpleField name="ageofdgpsdata" type="float"></SimpleField>
<SimpleField name="dgpsid" type="int"></SimpleField>
</Schema>
</Document></kml>
NMEA
NMEA (Dateiendung .nmea) ist ein Übertragungsstandard im maritimen Bereich (National Marine Electronics Association) und dient zum Austausch von Navigationsdaten zwischen Navigationsgeräten. Die Daten basieren auf ASCII, jeder Datensatz beginnt mit "$" und endet mit Zeilenvorschub und Wagenrücklauf. Ein "*" markiert eine Prüfsumme des Datensatzes.
Am weitesten verbreitet ist zur Zeit noch der Standard NMEA 0183.
Hier die NMEA-Datei der o.a. neun Wegpunkte
$GPWPL,5136.581,N,00726.215,E,WPT001*21
$GPWPL,5136.581,N,00726.215,E,WPT002*22
$GPWPL,5136.582,N,00726.215,E,WPT003*20
$GPWPL,5136.582,N,00726.214,E,WPT004*26
$GPWPL,5136.584,N,00726.211,E,WPT005*24
$GPWPL,5136.588,N,00726.206,E,WPT006*2D
$GPWPL,5136.594,N,00726.204,E,WPT007*23
$GPWPL,5136.603,N,00726.201,E,WPT008*24
$GPWPL,5136.615,N,00726.199,E,WPT009*20
$GPRMC,000000.000,V,5136.581,N,00726.215,E,0.00,0.00,010070,,*1A
$GPGGA,000000.000,5136.581,N,00726.215,E,0,00,0.0,0.000,M,0.0,M,,*65
$GPRMC,000000.000,V,5136.581,N,00726.215,E,0.00,0.00,010070,,*1A
$GPGGA,000000.000,5136.581,N,00726.215,E,0,00,0.0,0.000,M,0.0,M,,*65
$GPRMC,000000.000,V,5136.582,N,00726.215,E,0.00,0.00,010070,,*19
$GPGGA,000000.000,5136.582,N,00726.215,E,0,00,0.0,0.000,M,0.0,M,,*66
$GPRMC,000000.000,V,5136.582,N,00726.214,E,0.00,0.00,010070,,*18
$GPGGA,000000.000,5136.582,N,00726.214,E,0,00,0.0,0.000,M,0.0,M,,*67
$GPRMC,000000.000,V,5136.584,N,00726.211,E,0.00,0.00,010070,,*1B
$GPGGA,000000.000,5136.584,N,00726.211,E,0,00,0.0,0.000,M,0.0,M,,*64
$GPRMC,000000.000,V,5136.588,N,00726.206,E,0.00,0.00,010070,,*11
$GPGGA,000000.000,5136.588,N,00726.206,E,0,00,0.0,0.000,M,0.0,M,,*6E
$GPRMC,000000.000,V,5136.594,N,00726.204,E,0.00,0.00,010070,,*1E
$GPGGA,000000.000,5136.594,N,00726.204,E,0,00,0.0,0.000,M,0.0,M,,*61
$GPRMC,000000.000,V,5136.603,N,00726.201,E,0.00,0.00,010070,,*16
$GPGGA,000000.000,5136.603,N,00726.201,E,0,00,0.0,0.000,M,0.0,M,,*69
$GPRMC,000000.000,V,5136.615,N,00726.199,E,0.00,0.00,010070,,*13
$GPGGA,000000.000,5136.615,N,00726.199,E,0,00,0.0,0.000,M,0.0,M,,*6C