Automatic file format detection
Almost every GPS software and device on the market seems to use it's very own, very special way of storing routes, tracks and waypoints. You don't need to worry about this. RouteConverter helps you to get through this djungle of formats by automatically detecting the format of an arbitrary file that contains GPS data and not relying on the file name extensions.
When a file is read all file formats are used automatically to detect the format of a file and read the data. During this detection phase the currently working format is displayed:
Just drag and drop a GPS file into RouteConverter, wait a second or two and have a look at the information that RouteConverter displays after it loaded the data:
Here you can see:
- RouteConverter has detected the format of the file as "Google Earth 5 (*.kml)"
- The file contains 5 position lists: 1 route, 2 tracks and 2 waypoint lists
- The currently displayed position list is a track that is called "Sebastians Runmeter-Cycle-20110806-1034"
- The track contains 2548 positions and covers a length of 122.5 kilometers. The sum of all ascends between its positions is 1427 meters, the sum of all descends between its positions is 1355 meters.
Multiple position lists within one file are supported for the following formats:
Technical Background
A computer science principle when implementing robust programs is:
Be lenient when reading data and strict when writing data.
If RouteConverter would stick to the file extension when reading files or rely on the user to choose the format that could lead to wrong results since RouteConverter would try to fill the internal data structures from the data found in the file. In order not to crash it would have to apply a lot of checks and tests to validate the read data. This robustness is not visible to the user but it costs a lot of effort in programming.
So I've made ββa feature out of itββ: RouteConverter automatically detects the format of an arbitrary file and reads the GPS data from the file. The file extension is taken as a first indicator which formats to read first. Then all the supported formats try to read the given file.
Some formats are too strict and reject files that were actually intended for them - this happens quite often with the XML-based formats such as GPX and KML. Some formats are too greedy and interpret all data even if they cannot understand them - Garmin's POI database format quite often presents garbage to the user.
Please help
Please give feedback if such errors occur since I'd like to fix them as fast as possible.