Cookies für Statistik und Werbung
Wir setzen Cookies für Statistik und Werbung ein, beides geht an Google. Wenn du ablehnst, ändert sich für dich sichtbar nichts.Zur Datenschutzseite
KML kannst du hier kostenlos und ohne Konto in TCX umwandeln: Datei oben ablegen, und ein, zwei Sekunden später steht das Ergebnis zum Herunterladen bereit. Die Umwandlung läuft in deinem eigenen Browser, die Datei wird also nie hochgeladen — das klappt unter Windows, macOS und Linux ebenso wie auf iPhone und Android, und es funktioniert selbst dann noch, wenn du das Netz abschaltest.
Bis zu 100 Dateien auf einmal. Gemischte Formate sind kein Problem.
Sie werden nacheinander umgewandelt und kommen zusammen als ZIP zurück.
KML in TCX
Eine Radgruppe plant die nächste Ausfahrt in Google My Maps, zieht die Strecke mit ein paar Klicks entlang der Straßen und exportiert sie als KML, weil das der einzige Export ist, den das Werkzeug anbietet. Wer diese Datei anschließend in Garmin Connect oder TrainingPeaks als Einheit hochladen will und feststellt, dass dort eine TCX-Datei verlangt wird, findet auf dieser Seite die Umwandlung — und den Hinweis, sie in den meisten Fällen nicht zu benutzen.
Vor dem Umwandeln lohnt sich ein Test: die KML-Datei in einem Texteditor öffnen und nach dem Wort „when" suchen. Steht es dort, enthält die Datei einen gx:Track mit echten Zeitstempeln, und diese Umwandlung liefert ein sinnvolles Training. Steht es nicht dort — und bei allem von Hand Gezeichneten steht es dort nicht —, ist die Datei eine Form ohne Uhr, und die daraus gebaute TCX-Datei behauptet, um Mitternacht am 1. Januar 1970 stattgefunden zu haben und keine Zeit gedauert zu haben.
Das TCX-Schema verlangt ein StartTime-Attribut an jeder Lap und eine Id an jeder Activity, beides Zeitstempel. Fehlen Zeiten in der Quelle, gibt es nichts zu lesen, also wird der Unix-Zeitpunkt — 1970-01-01T00:00:00.000Z — in beide geschrieben, und TotalTimeSeconds wird zu null, weil die Differenz zwischen erstem und letztem Punktzeitpunkt nicht berechnet werden kann.
Die entstehende Datei ist schema-konform, weshalb sie überhaupt hochgeladen wird, statt abgelehnt zu werden. Was danach passiert, ist weniger sauber. Eine Plattform, die Einheiten nach Datum sortiert, setzt diese gut fünfzig Jahre vor alles andere, eine Trainingsbelastungsberechnung über eine nullsekündige Einheit teilt entweder durch null oder verwirft sie, und jedes aus Distanz durch Dauer abgeleitete Tempo ist undefiniert. Nichts davon ist ein Defekt — es ist die Arithmetik einer Datei, die behauptet, keine Zeit gebraucht zu haben.
Ein gx:Track ist Googles Erweiterung für aufgezeichnete Daten: parallele Listen aus when-Zeitstempeln und coord-Positionen, geschrieben von Werkzeugen, die eine GPS-Aufzeichnung als KML statt als GPX exportieren. Dieser Fall wird eigens erkannt, und die Zeitstempel wandern unverändert in das Time-Element jedes TCX-Trackpunkts.
Liegt das vor, funktioniert alles Weitere richtig. Der Lap-Start kommt vom ersten Punkt, die Dauer ist die tatsächlich vergangene Zeit, und die Einheit landet an der richtigen Stelle im Trainingsprotokoll. Das ist ein echter Nutzfall für jeden, dessen Aufzeichnungssoftware KML exportiert und dessen Trainer Garmin-Dateien braucht — und der Grund, warum diese Umwandlung überhaupt existiert, statt schlicht abgelehnt zu werden.
Eine TCX-Lap muss DistanceMeters angeben, eine KML-Datei speichert keine, die Zahl wird also berechnet, indem der Großkreisabstand zwischen aufeinanderfolgenden Eckpunkten auf einer Kugel mit Radius 6.371.000 Metern aufsummiert wird. Gegen eine ellipsoide Berechnung ist das auf ein paar Promille genau — nicht die Fehlerquelle, um die man sich hier sorgen sollte.
Die eigentliche Fehlerquelle ist die Form der Eingabe. Eine von Hand gezeichnete Linie hat einen Eckpunkt dort, wo geklickt wurde, jede Kurve wurde also durch die gerade Sehne über sie hinweg ersetzt. Eine Straße mit fünfzehn Serpentinen, in sechs Klicks nachgezeichnet, ist messbar kürzer als die Straße selbst, und die Einheit übernimmt diese kürzere Zahl als Fakt. Eine an das Straßennetz eingerastete Route aus einem echten Planer hat dieses Problem nicht — ein weiterer Grund, für alles, das gemessen werden soll, einen Planer zu benutzen.
Drei Angaben werden mit festen Werten geschrieben, weil nichts in einer KML-Datei ihnen entspricht. Sport wird zu Other, da das Schema nur eine kurze Aufzählung erlaubt und eine gezeichnete Linie nichts über die Disziplin aussagt. Intensity wird zu Active und TriggerMethod zu Manual — die ehrlichen Werte für eine Lap, die kein Gerät je gestartet oder gestoppt hat.
Alle drei lohnen sich nach dem Import zu korrigieren, wenn die Einheit bleiben soll. Die meisten Plattformen erlauben, die Sportart nachträglich zu ändern, und das ist wichtiger, als es aussieht — Trainingsbelastungsmodelle, Pulszonen und Bestleistungserkennung hängen alle an der Disziplin, eine als Other abgelegte Einheit fällt also aus den meisten davon still heraus.
Ein Workout kennt kein Wegpunkt-Konzept, wo die KML-Datei also Punkte enthält, fallen diese Placemarks schlicht weg — es gibt kein TCX-Element, das sie fassen würde, und eines zu erfinden ergäbe eine Datei, die bei jedem Leser die Validierung verfehlt.
Eine KML-Datei, die nur aus Pins besteht, wird nicht abgelehnt, sondern verarbeitet: Die Punkte werden als ein Track in der Reihenfolge des Dokuments gelesen, was eine Einheit ergibt, die eine Route zwischen ihnen behauptet. Ob das etwas bedeutet, hängt davon ab, was die Pins waren. Eine Folge von Kontrollpunkten entlang einer Strecke ergibt etwas Erkennbares; eine Sammlung unzusammenhängender Orte ergibt eine Einheit, die eine Fahrt beschreibt, die niemand gemacht hat, über eine Distanz, die niemand zurückgelegt hat, datiert auf 1970.
Der dritte Wert einer KML-Koordinate wird zu AltitudeMeters am Trackpunkt. Zeichnet Google Earth eine geländegebundene Linie, schreibt es diesen dritten Wert an jedem Eckpunkt als 0, weil die Darstellung ihn ignoriert. Eine daraus umgewandelte TCX-Datei trägt also häufig eine Höhe von null von Anfang bis Ende.
Eine Trainingsplattform, die diese Datei liest, meldet keinen Anstieg und ein flaches Profil — die korrekte Lesart der Zahlen, die sie bekommen hat. Lässt die KML-Datei den dritten Wert ganz weg, was bei My-Maps-Exporten häufig vorkommt, wird gar kein Höhenelement geschrieben, und die meisten Plattformen füllen dann die Höhe aus dem eigenen Geländemodell auf — eine bessere Antwort als die Nullen, die vorher dagestanden hätten.
Über die Distanz hinaus wirkt sich die Eckpunktzahl darauf aus, wie die Einheit im Trainingsprotokoll aussieht. Eine aufgezeichnete Fahrt hat einen Punkt pro Sekunde, eine gezeichnete Strecke vielleicht einen pro Kilometer. Diagramme aus der zweiten Art bestehen aus einer Handvoll Stichproben, und jedes Tempo, das eine Plattform aus nicht vorhandenen Zeitstempeln berechnen würde, wird schlicht nicht berechnet.
Das Ergebnis ist eine Einheit, die als Linie auf der Karte erscheint und sonst als leerer Bereich — kein Tempodiagramm, kein Höhenprofil, keine Kilometersplits. Das ist eine faire Wiedergabe einer Datei mit vierzig Koordinaten und keiner Uhr, und es ist das klarste praktische Argument dafür, das Ding als Route zu behandeln statt es als Einheit zu verkleiden.
Ist die KML-Datei ein Plan, gehört sie in GPX umgewandelt und dort als Route oder Kurs geladen. Jede Plattform und jedes Gerät hat dafür eine Funktion — Garmin nennt es einen Kurs, Strava und Komoot eine Route —, und keine davon verlangt einen Startzeitpunkt oder eine Dauer, weil ein Plan keins von beidem haben soll. Die Linie wird navigiert, die Wegpunkte kommen mit, und nichts in der Datei behauptet, eine Messung zu sein.
Die gewünschte Einheit entsteht danach, aufgezeichnet vom Gerät, das dem Kurs folgt, mit echten Zeiten und echten Sensordaten. Das ist die Reihenfolge, für die die Werkzeuge gebaut wurden, und sie ist deutlich weniger Arbeit, als eine erfundene Einheit zu importieren und anschließend Datum, Sportart und Dauer von Hand zu korrigieren.
Die KML-Datei wird gelesen und die TCX-Datei geschrieben, alles in diesem Browser. Keine Anfrage trägt die Datei irgendwohin, was sich im Netzwerkfenster während der Umwandlung prüfen lässt, und die Seite arbeitet nach dem Laden auch ohne Verbindung weiter.
Bei einer geplanten Strecke ist die Empfindlichkeit nicht dieselbe wie bei einer aufgezeichneten, aber nicht viel geringer. Eine gezeichnete Linie sagt trotzdem, wo jemand beabsichtigt zu sein und wann — die geplante Vereinsausfahrt einer Radgruppe für das kommende Wochenende ist genau die Art Planung, die vor der Veröffentlichung noch niemanden etwas angeht. Örtlich umzuwandeln bedeutet, dass die Datei nie zum Protokolleintrag auf einem fremden Server wird, allein durch das Ändern der Dateiendung.
Plant eine Radgruppe eine mehrtägige Tour, liegt am Ende oft eine KML-Datei je Etappe vor, jede für sich in Google My Maps gezeichnet. Alle Etappen lassen sich gemeinsam ablegen, jede wird für sich in eine TCX-Datei umgewandelt, und das Ergebnis kommt als eine ZIP-Datei zurück — praktisch, wenn eine ganze Woche auf einmal in ein Trainingsprotokoll soll.
Der Epochen-Rückfall betrifft dann jede Etappe einzeln und gleichermaßen: Fehlen in allen Dateien Zeitstempel, tragen alle entstehenden TCX-Dateien dasselbe Datum 1970 und lassen sich in der Plattform kaum noch auseinanderhalten. Für eine geplante Mehretappentour ist deshalb der Umweg über GPX-Routen die praktikablere Wahl, gerade weil dort mehrere Etappen als getrennte, sinnvoll benannte Dateien ankommen, statt als mehrere gleich datierte Workouts.
| KML | TCX | |
|---|---|---|
| Vollständiger Name | Keyhole Markup Language | Training Center XML |
| Dateiendung | .kml | .tcx |
| Medientyp | application/vnd.google-earth.kml+xml | application/vnd.garmin.tcx+xml |
| Erstmals veröffentlicht | — | 2007 |
| Herausgegeben von | Keyhole | Garmin |
| Spezifikation | OGC KML 2.3 | Training Center XML |
| Lizenzlage | Offener Standard | Veröffentlicht, nicht standardisiert |
| Heutiger Stand | Aktuell | Aktuell |
| Öffnet im Browser | Kein Browser | Kein Browser |
| Stattdessen erwogen | KMZ, GPX | GPX, FIT |
Die üblichen Programme überschneiden sich nicht: KML öffnest du in Google Earth, QGIS und ArcGIS, TCX in Garmin Connect, Strava und TrainingPeaks — wer das Ergebnis bekommt, braucht also eines aus der zweiten Reihe.
Die beiden zielen auf verschiedene Arbeit: KML auf Karten, TCX auf die Sportaufzeichnung. Das lohnt sich vorher abzuwägen — der Grund, aus dem es das eine gibt, ist meist der Grund, aus dem das andere unpraktisch ist.
KML stammt von Keyhole. Festgehalten ist das in OGC KML 2.3 — lohnt sich zu kennen, wenn die Datei das Programm überleben soll, das sie geschrieben hat.
TCX kommt von Garmin und stammt aus 2007, festgehalten in Training Center XML. Garmin Connect, Strava und TrainingPeaks lesen das Format.
Nein. Diese Umwandlung läuft vollständig in deinem Browser, die Datei verlässt dein Gerät also nicht. Du kannst das selbst nachprüfen: Öffne den Netzwerk-Tab der Entwicklerwerkzeuge und wandle etwas um. Zu sehen sind die Seite selbst und die Statistik- und Werbeanfragen, mit denen dieser Dienst bezahlt wird — und keine einzige, die deine Datei trägt.
Ja. Kein Konto, kein Wasserzeichen und kein Tageskontingent, das sich verbraucht — es läuft auf deinem eigenen Rechner, du darfst also so oft wiederkommen, wie du willst. Dateien bis 100 MB verarbeitet der Browser, 100 auf einmal.
KML und TCX beschreiben Inhalte auf grundverschiedene Weise. Die Umwandlung ist deshalb ein Nachbau und keine Kopie: originalgetreu, aber nicht Byte für Byte dasselbe. Positionen, Höhen und Zeitstempel kommen mit. Sensordaten, Gestaltung und eingebettete Bilder nicht.
Für die Umwandlung selbst nicht — sie läuft in dem Browser, den du ohnehin offen hast. Zum Öffnen brauchst du danach das Programm, das auf deinem Gerät üblicherweise Training Center XML anzeigt.