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:
| Format | Spec | Test it with |
|---|---|---|
.wpt — three dialects | → WPT waypoint files | A dialect sniffer, a DMS converter and a row decoder |
.gpx | → GPX for free flight | A container-precedence resolver and a file inspector |
.kml | → KML for free flight | A coordinate-order decoder and a file inspector |
.cup | → SeeYou CUP format | A coordinate converter and a file inspector |
What goes where
| Format | Extension | Routes | Collections | Notes |
|---|---|---|---|---|
| OziExplorer | .wpt | ✓ | ✓ | CSV, 18 columns, altitude in feet |
| CompeGPS geographic | .wpt, .utm | — | ✓ | G/U/W records, metres |
FS / GpsDump $FormatGEO | .wpt | — | ✓ | DMS columns, metres — the comp standard |
| GPX 1.1 | .gpx | ✓ | ✓ | rte / trk / wpt |
| KML 2.2 | .kml | — | ✓ | Placemark points |
| GeoJSON | .geojson, .json | ✓ | — | LineString or points |
| SeeYou | .cup | — | ✓ | Also 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.