GPX — Complete Guide: TopoGrafix History 2002-2026, How to Open, How to Make a GPS Route from OSM

2026-04-1714 min read
GPXGPSGarminStravanavigation

GPX is an XML document describing three types of geodata: points <wpt>, routes <rte>, and tracks <trk>. A cycling route from Shibuya to the Imperial Palace in Tokyo weighs about 80 KB in GPX, imports into a Garmin Edge in two seconds, syncs to Strava with one click, and displays in OsmAnd on an offline map without internet. GPX is the most universal format for all GPS devices and sports apps: it's understood by Garmin Edge and Wahoo Elemnt, Suunto and Polar watches, Strava and Komoot, OsmAnd and Locus Map, BaseCamp and Google My Maps. It has been the de facto GPS industry standard since 2002.

Map generation of Prague city center
Sydney, walking route around the Opera House, 4 km, exported to GPX in 25 seconds. Track shown in OsmAnd on Android with waypoints highlighted.

History: One Developer, Open Standard, 24 Years of Stability

In 2002, American developer Dan Foster of TopoGrafix sought a way to exchange GPS data between disparate programs and devices. Each navigator manufacturer — Garmin, Magellan, TomTom — had its own format: PCX5, OZF, .gdb, .mps. Compatibility was nonexistent: a track recorded on a Garmin Etrex could not be opened in a Magellan Meridian without conversion through the intermediary GPSBabel.

Foster wrote an XML schema, published it on topografix.com, and proposed that GPS manufacturers adopt the format as an open standard. GPX 1.0 was released on March 1, 2002, and described three primary entities: waypoints (individual named points), routes (planned routes — sequences of waypoints), and tracks (recorded tracks — sequences of points with timestamps).

GPX 1.1 was ratified on August 9, 2004, and became canonical. The main innovation — extensions namespace: each manufacturer could add its own data in its own namespace without breaking compatibility. Garmin started writing heart rate, cadence, and power data in <gpxtpx:TrackPointExtension>. Strava added its own namespace for elevation gain. Since 2004, the standard has been de facto "frozen": informal work on GPX 2.0 has been ongoing since around 2010, but no final draft exists, and the industry has no urgency — version 1.1 covers 95% of tasks.

GPX license — public domain. Steward — Dan Foster personally, still through topografix.com. No corporation controls the format, no royalties, no licensing agreements. This is the most "free" geospatial format in existence. Because of this, virtually all GPS device manufacturers and sports apps adopted it: GPX can be supported without negotiating with a rights holder.

What's Inside a GPX File

GPX is a UTF-8 XML document with namespace http://www.topografix.com/GPX/1/1. Minimal structure:

<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="osm2cdr.ru"
     xmlns="http://www.topografix.com/GPX/1/1">
  <wpt lat="35.6586" lon="139.7454">
    <name>Tokyo Tower</name>
    <ele>250</ele>
    <sym>Tower</sym>
  </wpt>
  <trk>
    <name>Shibuya - Imperial Palace ride</name>
    <trkseg>
      <trkpt lat="35.6580" lon="139.7016">
        <ele>40</ele>
        <time>2026-05-12T09:15:00Z</time>
      </trkpt>
    </trkseg>
  </trk>
</gpx>

Key elements. The root <gpx> declares version (1.0 or 1.1) and creator (the producing program — this field often helps diagnose compatibility issues). Coordinates are written as XML attributes lat and lon — latitude first, then longitude. Note: this is the opposite order to KML (lon,lat).

Three object types. <wpt> (waypoint) — independent point with name, description, icon (<sym> — Garmin icon name: Tower, Flag, Lodging, etc.). Used for marking points of interest. <rte> (route) — planned route: ordered list of waypoints without timestamps, the navigator builds the path itself. <trk> (track) — recorded track: sequence of <trkseg> segments of <trkpt> points with coordinates, elevation <ele>, and time <time>.

Extensions namespace. The most powerful GPX 1.1 feature. Garmin defines the gpxtpx: namespace for heart rate (<gpxtpx:hr>), cadence (<gpxtpx:cad>), temperature (<gpxtpx:atemp>). Strava and Komoot use their own namespaces for additional analytics. Standard programs ignore unknown extensions; native ones read and use them. This allows adding data without breaking compatibility.

Timestamps in UTC. The <time> field is required in ISO 8601 format with UTC timezone: 2026-05-12T09:15:00Z. Local time cannot be used — route analyzers (Strava) will recalculate incorrectly. If the device writes locally, convert via a utility before importing.

Six Roles for GPX Users

Hiker and backpacker. Route is pre-planned in OsmAnd or Komoot, saved as GPX, loaded into a Garmin Etrex or GPSMAP. In mountains without internet, the device leads along the route, shows remaining distance, warns of deviations. The KML alternative is less convenient because Garmin Etrex 22x and most hiking navigators don't understand KML at all — you need to convert via BaseCamp.

Cyclist. Training is mapped in Komoot or Strava Routes, exported as GPX, loaded into a Garmin Edge 540 or Wahoo Elemnt Bolt. During the ride, the device records the real track with heart rate, cadence, and power in GPX extensions; after the ride, the file syncs with Garmin Connect and Strava with one button. Standard workflow for all serious cyclists since 2015.

Off-road navigator. Trip preparation for off-road travel in Garmin Nuvi or Garmin Drive: route waypoints are placed in BaseCamp on a computer, exported as a GPX route, loaded into the navigator. The device guides through all waypoints with rerouting. Smartphone alternatives with offline Google Maps only work with connectivity; GPX in Garmin guarantees offline operation.

Runner. Training is recorded by Garmin Forerunner, Suunto, Polar, or Apple Watch (via the Strava app). Exporting the recording to GPX gives raw data for deep analysis in GoldenCheetah, TrainingPeaks, RunalyzePro. Coaches dissect the track meter by meter.

Geocacher. geocaching.com offers cache databases as GPX: coordinates + description + sym Geocache. Download GPX, load into OsmAnd or Garmin, search on the ground. Alternative apps — c:geo, Cachly — work only with GPX, because that's the format geocaching.com itself exports.

OSM mapper. Field surveys for adding to OpenStreetMap. A GPS receiver or smartphone records a GPX track during a walk; the mapper later imports the track into JOSM as a background layer and draws buildings/roads on top. 5–10 meter accuracy without RTK is enough for typical OSM mapping of urban streets.

Eight Programs to Open GPX

Garmin BaseCamp. Free, Windows and macOS. Garmin's tool for preparing routes for all hiking and bike navigators. Import GPX via File → Import. Main environment for tour preparation for Garmin Etrex, GPSMAP, Edge.

Garmin Connect. Free, web + mobile. After training, Garmin watches sync with Connect; activity is available as GPX via "Export."

Strava. Free for basics, premium $11.99/mo. Web + Android/iOS. Import GPX via "Upload activity" in the "+" menu. Strava analyzes the track itself: splits into segments, computes speed and elevation, compares with other athletes. Worldwide standard for cyclists and runners.

Komoot. Paid app from $4 per region, web + Android/iOS. Main route planning environment: considers road surface, bike paths, elevation. Export plan as GPX. Especially strong in Europe — Komoot has its own OSM-based maps with bike infrastructure detail.

OsmAnd. Free (paid PRO around $5), Android and iOS. Import GPX via Menu → Configure Map → GPX tracks → +. The app understands waypoints as POIs, renders tracks over the offline map, supports track navigation with rerouting.

Locus Map. Paid, $7 one-time or subscription, Android. Alternative to OsmAnd with more advanced features: 3D track visualization, extended statistics, racetimer support.

GPXSee. Free open-source viewer, Windows/macOS/Linux. Shows GPX tracks on any OSM basemap with elevation and pace graphs.

QGIS. Free, OSGeo. Opens GPX via Layer → Add Vector Layer → GPX. Track, route, waypoint appear as separate layers. Useful for GIS analysts cross-referencing GPS tracks with forests, water bodies, cadastre.

Pros and Cons

Pros. Universal GPS industry standard — all navigators and sports apps have understood GPX since 2005. Small size: a 50 km track with per-second heart rate weighs 400–800 KB. Simple XML — editable in Notepad or a Python script. Extensions namespace — Garmin, Strava, Komoot write their data without breaking compatibility. Public domain — no licensing risks. Standard stable for 20+ years: GPX 1.1 (2004) is still current; files from 2005 read in modern programs without issues. Position accuracy support via <hdop>, <vdop>, <pdop>, <sat> for scientific applications.

Cons. Only three geometries: point, line (route or track), no polygons. Areal features (parks, water bodies, forest blocks) cannot be represented in GPX — you need KML or GeoJSON. Weak attribute model: each point has a limited set of standard fields (name, description, icon, elevation, time); for arbitrary attributes, extensions are required, which not all programs read. Only WGS84 — no other projections. Verbose XML: the same track in FlatGeobuf is 5x smaller. Styling not supported: track color and icons are set by the viewer, not the file. Garmin Etrex 22x limit — 500 points per track: large recordings must be split.

GPX vs KML, FIT, and TCX

Parameter GPX KML FIT TCX
Type XML XML Binary XML
Year 2002, frozen 2004 2008 (OGC 2.2) Garmin 2010 Garmin 2008
Size for 50 km 400 KB 800 KB 80 KB 600 KB
Polygons No Yes No No
Custom icons No (only Garmin sym) Yes No No
Sensor data Via extensions No Native Native
Multi-sport No No Yes Yes
Strava import Yes Conversion Yes Yes
Garmin BaseCamp Native Import only Via Connect Native
OsmAnd Native Import Conversion Conversion

When to choose what. GPX — for GPS tracks, sports training, routes in hiking navigators. KML — for Google Earth and My Maps presentations, especially with custom icons and descriptions (see separate article GPX vs KML). FIT — Garmin format for watches and bike computers, 5x more compact than GPX but not openable in most third-party programs; export FIT → GPX via Garmin Connect. TCX — old Garmin training format pre-FIT, mostly legacy.

How to Make GPX from OpenStreetMap via osm2cdr.ru

The service renders GPX from a live PostGIS database, extracting roads, trails, and POIs as waypoints and routes. No subscription required. Path from opening the site to a file in your navigator — 30–60 seconds.

Step 1. Open Format Wizard. Visit osm2cdr.ru, choose GPX from the format list in "GIS / Navigation." Or direct link /?format=gpx.

Step 2. Outline the area. Draw a rectangle around the district where you plan the route. For a day cycling tour — 10–30 km. For a weekend hike — 5–15 km. For an urban walking route — 1–3 km.

Step 3. Style and layers. Style doesn't matter for GPX — the format stores only coordinates, styling is done by the viewer. Layers matter: keep Roads and POI for roads and points of interest. Buildings and Water usually aren't needed (polygons don't fit GPX anyway).

Step 4. Launch export. Click "Export." Celery queue processes the request in 15–45 seconds for a typical area.

Step 5. Load into your device. For Garmin Edge, Etrex, GPSMAP: connect USB, open Garmin/NewFiles/ or Garmin/GPX/, copy the .gpx file. Or via BaseCamp: File → Import → Send to Device. For OsmAnd: open the file from the downloads manager, OsmAnd offers "Import as GPX." For Strava: Upload an activity → select file.

Step 6. Use in the field. In Garmin Edge: menu → Courses → choose imported GPX → Start. The device shows the route on the map and guides by voice or vibration. In OsmAnd: Menu → Configure Map → GPX tracks → enable track → Menu → Navigate → By track.

Gotchas and Tips

Coordinate order. GPX writes <wpt lat="..." lon="..."> — latitude first, longitude second. This is opposite to KML and GeoJSON (which use lon,lat). The most common mistake in manual GPX creation from CSV is mixing up the order. A point from Brest would end up in the Bering Sea. Verify against a world map before loading into a navigator.

Timestamps in UTC. The <time> field must be UTC with Z suffix: 2026-05-12T09:15:00Z, not 2026-05-12T12:15:00+03:00. Strava and Garmin Connect recalculate local time from track geolocation themselves. If timestamps are local — Strava will show wrong start time and confuse with other workouts.

Garmin limits. Old hiking navigators (Etrex 22x, Etrex 32x, GPSMAP 64) have a 500-point-per-track limit and 250-point route limit. Large tracks are either truncated or rejected. Solutions: simplify the track via GPSBabel (-s flag — Douglas-Peucker), split into <trkseg> segments, or convert to FIT (Edge series accepts FIT without limit). New Garmin Edge 1040 and Fenix 7 removed the limit.

Extensions namespace. If you plan to record heart rate and cadence, add xmlns:gpxtpx="http://www.garmin.com/xmlschemas/TrackPointExtension/v1" to the root. Without this, Garmin Connect doesn't recognize the values. Strava accepts both with and without extensions.

Elevation. The <ele> field (meters above WGS84 ellipsoid) is optional but highly recommended. Without elevation, Strava won't compute elevation gain, Komoot won't draw the profile. If your GPS doesn't write altitude — enrich via third-party services by coordinates (SRTM 30 m, USGS).

GPX 1.0 vs 1.1. Very old software (before 2007) writes GPX 1.0 — xmlns="http://www.topografix.com/GPX/1/0". Extensions there are structured differently and often not read by modern software. If a GPX 1.0 file appears, convert via GPSBabel: gpsbabel -i gpx -f input.gpx -o gpx -F output.gpx.

FAQ

How does GPX differ from KML? GPX is for GPS tracks and waypoints, understood by all navigators and sports apps. KML is the Google Earth format with custom icons, descriptions, and polygons. Detailed comparison — separate article. Briefly: GPX for recording and navigation, KML for visualization and presentation.

How do I load GPX into a Garmin? Connect the watch/navigator via USB, open the Garmin drive in your file explorer, find the GPX/ or NewFiles/ folder, copy .gpx. Disconnect, restart the device. Alternatively via Garmin Express or BaseCamp — File → Import.

Can I import GPX into Strava? Yes. Go to strava.com, click "+" in the top menu → "Upload activity." Select the GPX file. Strava analyzes the track in 30–60 seconds and creates an activity with automatic sport detection (cycling/running/walking).

How do I open GPX on iPhone? Install OsmAnd, Maps.me, Strava, or Komoot from the App Store. Open the .gpx file from email, messenger, or Files — the system will offer "Open in..." with installed apps listed.

Does GPX support heart rate? Yes, via the gpxtpx: extensions namespace. Garmin, Polar, Suunto watches write heart rate to each <trkpt>. Strava and Garmin Connect display it on a graph. Standard programs (Etrex) ignore the field — it's just stored in the file.

What is FIT and how does it differ from GPX? FIT (Flexible and Interoperable Data Transfer) is Garmin's binary format for watches and bike computers since 2010. The file is 5x more compact than GPX, supports multi-sport (triathlon), but opens only in Garmin Connect and Strava. If you need the file in third-party software, convert FIT → GPX via Garmin Connect (Export → GPX option).

Do I need an osm2cdr subscription for GPX? No, GPX export is free. Free-tier limits are described on the /formats/gpx/ landing page.

Sources

← All articles