EN
Back to the archive

The encyclopedia · Software & IT · Technical decision · 2002–2004

GPX made GPS data portable with one open XML schema

Topografix's GPX (2002) defined XML for waypoints, routes and tracks, and became the de-facto standard for GPS data across apps and OpenStreetMap.

Topografix · OpenStreetMap

The solution

In the early 2000s GPS devices were islands: a track recorded on one brand's unit could not open in another's software, and sharing a route meant screenshots or proprietary formats. Topografix answered with GPX, the GPS Exchange Format — a lightweight XML format for waypoints, routes and tracks, released as an open development effort.

GPX 1.0 shipped in 2002 and 1.1 followed on August 9, 2004, with a public schema that any developer could validate against. Because XML parsers already existed in every language, the cost of supporting GPX was an afternoon, not a licensing negotiation.

Adoption followed the openness. Topografix describes GPX as the de-facto XML standard for lightweight interchange of GPS data, used by hundreds of software programs and web services; OpenStreetMap built its GPS track upload pipeline around the format, giving it a huge real-world data sink and a community that pushed its use.

Why it worked

  • XML was already understood by every programming platform.
  • The schema is open and free, so device makers could ship it without lawyers.
  • Waypoints, routes and tracks cover the three things GPS users actually share.
  • OpenStreetMap's upload pipeline gave the format a huge real-world sink.
What it achievedOne open XML for waypoints, routes and tracksneat

What can be applied

Publish a simple, open schema and let every vendor and hobbyist implement it — interoperability spreads through user demand, not through any single company's market power.

Aftermath

GPX became the interchange default for GPS hardware and software — mapping apps, fitness trackers and geocaching tools import and export it, and OpenStreetMap's track uploads are built on it — while the format itself stayed open and essentially unchanged since 1.1.

Sources

spotted an error? The archive wants to know.

Related cases