Bod v GPX 1.1
Kořen má povinné version a creator. Zeměpisná šířka je atribut lat, délka lon. Waypoint je wpt; stopa se skládá z trk, trkseg a trkpt. Časové údaje a pořadí bodů mají význam.
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="XML.cz">
<wpt lat="50.0880" lon="14.4208"><name>Praha</name></wpt>
</gpx> Stejný bod v KML
KML používá v coordinates pořadí délka, šířka, případně výška, oddělené čárkami. KML 2.3 zachovává namespace s 2.2 v URI. KMZ je ZIP balíček s KML a dalšími soubory, nikoli prostý XML text.
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark><name>Praha</name><Point><coordinates>14.4208,50.0880</coordinates></Point></Placemark>
</kml> Validace a XPath
Ověř správný namespace a verzi schématu, rozsah souřadnic a strukturu zvoleného typu. XPath 1.0 musí mít prefix navázaný na URI GPX/KML. Syntakticky platné XML ještě nezaručuje smysluplnou trasu.
Převody a soukromí
Při převodu do GeoJSON dohodni zachování časů, výšek a stylů; ty nejsou ve všech formátech rovnocenné. Stopy mohou odhalit bydliště nebo pohyb osob. Pro KMZ omez počet položek a rozbalenou velikost archivu.
Dva body trasy v GPX
<gpx xmlns="http://www.topografix.com/GPX/1/1" version="1.1" creator="XML.cz">
<trk><name>Krátká ukázka</name><trkseg>
<trkpt lat="50.08" lon="14.42"><ele>200</ele><time>2026-10-01T10:00:00Z</time></trkpt>
<trkpt lat="50.09" lon="14.43"><ele>205</ele><time>2026-10-01T10:01:00Z</time></trkpt>
</trkseg></trk>
</gpx> import xml.etree.ElementTree as ET
ns = {"g": "http://www.topografix.com/GPX/1/1"}
root = ET.parse("trasa.gpx").getroot()
for point in root.findall("g:trk/g:trkseg/g:trkpt", ns):
print(point.attrib["lon"], point.attrib["lat"], point.findtext("g:time", namespaces=ns)) Výstup jsou souřadnice 14.42 50.08 a 14.43 50.09 s časy. V GPX jsou souřadnice atributy lat/lon, v GeoJSON se pořadí zapisuje jako lon,lat. Dva trkseg mohou znamenat přerušení záznamu; nespoj je automaticky souvislou čarou. Route rte a waypoint wpt mají jinou funkci než track.
Ulož oficiální GPX 1.1 XSD a validuj příkazem xmllint --noout --schema gpx.xsd trasa.gpx. Změna lat na 100 poruší rozsah. Chybějící namespace způsobí jiný typ chyby než špatná souřadnice.
Odpovídající linie v KML
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document><Placemark><name>Krátká ukázka</name><LineString>
<coordinates>14.42,50.08,200 14.43,50.09,205</coordinates>
</LineString></Placemark></Document>
</kml> Mezery oddělují pozice, čárky hodnoty pozice. Základní LineString neobsahuje časy GPX: uvedený převod už tuto informaci ztratil. Při práci s výškou stanov altitudeMode, protože číslo samo neurčuje vztah k terénu. Pro věrný návrat musíš zachovat chybějící metadata jinou dohodnutou konstrukcí nebo původním souborem. Standard a namespace musí odpovídat cílovému GIS.