Automatische Dateiformat-Erkennung

Fast jede GPS-Software und jedes GPS-Gerät auf dem Markt scheint seine ganz eigene, ganz besondere Art zu haben, Routen, Tracks und Wegpunkte zu speichern. Darum müssen Sie sich keine Gedanken machen. RouteConverter hilft Ihnen, sich durch diesen Dschungel von Formaten zu schlagen, indem es das Format jeder Datei mit GPS-Daten automatisch erkennt, anstatt sich auf die Dateiendung zu verlassen.

Beim Einlesen einer Datei wird automatisch jedes unterstützte Dateiformat ausprobiert, um das Format zu erkennen und die Daten zu lesen. Während dieser Erkennungsphase wird das gerade geprüfte Format angezeigt:

RouteConverter zeigt das erkannte Format einer geöffneten Datei

Ziehen Sie einfach eine GPS-Datei per Drag-and-drop in RouteConverter, warten Sie ein bis zwei Sekunden und sehen Sie sich die Informationen an, die RouteConverter nach dem Laden der Daten anzeigt:

Informations-Panel mit den Daten in einer GPS-Datei

Hier sehen Sie:

  • RouteConverter hat das Format der Datei als "Google Earth 5 (*.kml)" erkannt
  • Die Datei enthält 5 Positionslisten: 1 Route, 2 Tracks und 2 Wegpunktlisten
  • Die aktuell angezeigte Positionsliste ist ein Track mit dem Namen "Sebastian's Runmeter-Cycle-20110806-1034"
  • Der Track enthält 2548 Positionen und ist 122,5 Kilometer lang. Die Summe aller Anstiege zwischen seinen Positionen beträgt 1427 Meter, die Summe aller Abstiege 1355 Meter.

Mehrere Positionslisten innerhalb einer Datei werden für folgende Formate unterstützt:

Technischer Hintergrund

Ein Grundsatz der Informatik für robuste Programme lautet:

Sei nachsichtig beim Lesen von Daten und streng beim Schreiben von Daten.

Würde sich RouteConverter beim Lesen von Dateien an die Dateiendung halten oder darauf verlassen, dass der Benutzer das Format auswählt, wäre das Ergebnis leicht falsch: RouteConverter würde versuchen, seine internen Datenstrukturen aus den in der Datei gefundenen Daten zu füllen. Um nicht abzustürzen, müsste es viele Prüfungen und Tests anwenden, um die gelesenen Daten zu validieren. Diese Robustheit ist für den Benutzer unsichtbar, in der Umsetzung aber aufwendig.

Also habe ich eine Funktion daraus gemacht: RouteConverter erkennt das Format jeder Datei automatisch und liest die GPS-Daten daraus. Die Dateiendung dient als erster Hinweis darauf, welche Formate zuerst probiert werden. Anschließend versuchen alle unterstützten Formate, die Datei zu lesen.

Manche Formate sind zu streng und weisen Dateien ab, die eigentlich für sie gedacht waren — das passiert recht häufig bei XML-basierten Formaten wie GPX und KML. Andere Formate sind zu gierig und interpretieren alle Daten, selbst wenn sie sie nicht verstehen — Garmins POI-Datenbankformat präsentiert dem Benutzer häufig Datenmüll.