GPX Usage
Background
All of the topics listed in this document apply to multiple versions of GPX. Currently this means GPX 1.0 and GPX 1.1 but they also apply to GPX 1.2. All of the items described below relate to standards / best practices and are essentially documentation activities, although compressed archives will require some development and testing.
Compressed Archives
- Support for compressed archives (GPZ) for GPX 1.0 / 1.1 / 1.2
- Inspired by the KMZ format of KML which is based on the ZIP format
- Full details are available on a separate page
Embedded Icons, Images, Photos, Videos
- “We do need to come up with some answers as to how GPX should handle things like photos embedded in waypoints, waypoints embedded in photos, and your hotspots and other map symbols.” - see link
- This ties in particularly well with compressed archives (GPZ) where multiple files can be bundled together
- However, use of relative paths may have some issues as described in the possible improvements to the GPX core
Schema Endpoints
- HTTPS support was discussed by Dan in 2018 - link
- It was also raised new thread in the GPX developers mailing list, discussing validation tools and HTTPS
Documentation Tweaks
- Clarification about
<ele>
which is the “WGS84 orthometric height (relative to MSL)” for elevation and altitude
- See useful links and “Definition of
<ele>
is unclear” discussion on Github for more information
- Clarification about the use of WGS84
- See “WGS84” discussion on Github for more information
- Make it clear that latitude and longitude values should not provide more than 9 decimal places
General Guidance for Developers
- XML writers
- “Protect other applications from yours by validating test files from your application against the schema.”
- Do not include unknown elements when writing GPX files - e.g. if elevation is unknown, do not include
<ele>0</ele>
- Do not calculate unknown elements when writing GPX files - e.g. if speed is unavailable, do not calculate it from lat + lon
- XML readers
- “Protect your application against schema changes by ignoring unknown elements.”
- This applied to XML elements and attributes that are not recognised