Skip to main content
reference 3 min read

Waypoint & route formats

The formats the XC planner imports and exports — the three .wpt dialects, GPX, KML and SeeYou .cup — with interactive specs you can test in the browser.

What this is

The XC planner works with two different things, and the distinction decides which format you want:

  • a route — an ordered line you intend to fly;
  • a waypoint collection — an unordered set of named places, the database you build routes and tasks from.

Both import and export as the files free-flight pilots already exchange. Everything is parsed in your browser — an imported route or collection is only stored when you explicitly save it.

Interactive specifications

Each format has a self-contained, interactive spec you can read and test right in the browser — no upload, nothing leaves the page:

FormatSpecTest it with
.wpt — three dialectsWPT waypoint filesA dialect sniffer, a DMS converter and a row decoder
.gpxGPX for free flightA container-precedence resolver and a file inspector
.kmlKML for free flightA coordinate-order decoder and a file inspector
.cupSeeYou CUP formatA coordinate converter and a file inspector

What goes where

FormatExtensionRoutesCollectionsNotes
OziExplorer.wptCSV, 18 columns, altitude in feet
CompeGPS geographic.wpt, .utmG/U/W records, metres
FS / GpsDump $FormatGEO.wptDMS columns, metres — the comp standard
GPX 1.1.gpxrte / trk / wpt
KML 2.2.kmlPlacemark points
GeoJSON.geojson, .jsonLineString or points
SeeYou.cupAlso a task format

The three things that catch people

.wpt is not a format. It is three unrelated plain-text formats sharing an extension, and the file does not reliably say which it is. Sniff the content: $FormatGEO header → FS; OziExplorer header → Ozi; a G WGS 84 line or a W <code> A <lat> <lon> record → CompeGPS; otherwise a comma means Ozi. $FormatUTM is a different coordinate system — refuse it and ask for a GEO export.

Coordinate order flips between formats. GPX puts latitude and longitude in named attributes, so it is unambiguous. KML and GeoJSON write longitude,latitude — the opposite of how you say it. Nothing in the file tells you when you have it backwards.

Competition codes need two slots. A comp waypoint has a short code (B61130) and a readable name. CompeGPS, $FormatGEO and .cup have a field for each; GPX, KML and Ozi have only name and description, so comp tools put the code in the name and the full name in the description. On import, promote the name to a code when it is 2–8 alphanumeric characters containing at least one digit and the description differs — the digit requirement stops Goal, Home and Top being read as codes.

Round trips

A collection can be imported in any of these and exported in any other, and the code, name, description and elevation survive the trip — including through the two-slot formats. Elevation is normalised to metres on the way in (Ozi's column 15 is feet; -777 and -9999 mean unknown, not a depth).

Flight tracks

None of these is accepted as a flight track. Every flight enters we-fly as IGC, which carries pressure altitude and a security record that GPX and KML have no way to express. If a service only offers you KML for a flight, ask for the original IGC — they almost always still have it.

Sources

Each interactive spec lists its own sources. The primary ones are the Topografix GPX 1.1 schema, the OGC KML 2.2 standard, OziExplorer's file-format reference, GpsDump and Naviter's SeeYou file formats.