geoprimsField-grade geospatial math

Export a mission (KML, GeoJSON, CSV)

Waypoints written as a file with the right altitude mode, GeoJSON with each waypoint's details, or , labeled with the height reference and a not-for-navigation notice.

Planning and education aid. Not for primary navigation. Full disclaimer

Experimental: not yet fully verified. How results are checked

3

The file has 3 waypoints, with heights above the ground.

File name
Heights
Heights in the file
Provenance
Computed by
drone.mission.export 1.0.0, core 0.1.0
Model
KML altitude mode follows the height reference: AGL is relativeToGround; MSL is absolute; takeoff heights become absolute by adding the takeoff's MSL elevation; HAE becomes absolute by subtracting the geoid height N (OGC KML 2.3 §9.20; KML's absolute is above sea level). GeoJSON carries [longitude, latitude, height] with the reference in each waypoint's properties (RFC 7946); CSV has one row per waypoint
Accuracy
Coordinates to 7 decimal places (about 1 cm) and heights to 0.01 m; no conversion beyond the stated offsets
Notes
1 shown with the answer
Cites
Open Geospatial Consortium, OGC KML 2.3; IETF RFC 7946, The GeoJSON Format; IETF RFC 4180, Common Format and MIME Type for Comma-Separated Values (CSV) Files

Something look off?

Your values

Showing an example. Change anything.
KML, KMZ, GPX, GeoJSON, CSV, WKT, or WKB — or drop it on the box. Read on this device.
More options 5
Run many at once from a CSV

Loading…

How we got thisFormula, worked example, sources, and proof

Model: KML altitude mode follows the height reference: AGL is relativeToGround; MSL is absolute; takeoff heights become absolute by adding the takeoff's MSL elevation; HAE becomes absolute by subtracting the geoid height N (OGC KML 2.3 §9.20; KML's absolute is above sea level). GeoJSON carries [longitude, latitude, height] with the reference in each waypoint's properties (RFC 7946); CSV has one row per waypoint

Accuracy: Coordinates to 7 decimal places (about 1 cm) and heights to 0.01 m; no conversion beyond the stated offsets

Worked example: Three waypoints at 80 m AGL, as KML. Source: add-drone-suite KML altitude-mode scenario (AGL writes relativeToGround).

You enter

Format
kml
Heights are
agl
Mission name
North field
Waypoints
40.4406, -80.002, 80 m, 90, -90, photo 40.4406, -80.0005, 80 m, 90, -90, photo 40.4412, -80.0005, 80 m, 270, -90, photo

You get

Waypoints
3
File name
north-field.kml
Heights
above the ground
Heights in the file
relativeToGround
Media type
application/vnd.google-earth.kml+xml
File
<?xml version="1.0" encoding="UTF-8"?> <!-- geoprims drone.mission.export, core 0.1.0. Heights AGL. Planning aid only, not for navigation. Check every waypoint before flight. --> <kml xmlns="http://www.opengis.net/kml/2.2"> <Document> <name>North field</name> <description>Planning aid only, not for navigation. Check every waypoint before flight.</description> <Placemark> <name>Flight path</name> <LineString> <altitudeMode>relativeToGround</altitudeMode> <coordinates>-80.002,40.4406,80 -80.0005,40.4406,80 -80.0005,40.4412,80</coordinates> </LineString> </Placemark> <Placemark> <name>1</name> <description>heading 90°, gimbal -90°, photo</description> <Point> <altitudeMode>relativeToGround</altitudeMode> <coordinates>-80.002,40.4406,80</coordinates> </Point> </Placemark> <Placemark> <name>2</name> <description>heading 90°, gimbal -90°, photo</description> <Point> <altitudeMode>relativeToGround</altitudeMode> <coordinates>-80.0005,40.4406,80</coordinates> </Point> </Placemark> <Placemark> <name>3</name> <description>heading 270°, gimbal -90°, photo</description> <Point> <altitudeMode>relativeToGround</altitudeMode> <coordinates>-80.0005,40.4412,80</coordinates> </Point> </Placemark> </Document> </kml>

Review: Not yet independently reviewed by a Part 107 remote pilot.

Last verified: 2026-09-22, when a maintainer last confirmed this tool's sources at the issuer. See the sources ledger.

Status: version 1.0.0, core 0.1.0. See this tool in the verification report.

Checked against: 18 golden test vectors (download the test vectors, each with its source and tolerance). See how results are checked and every source.

Sources

Terms

CSV: comma-separated values
A plain-text table with one row per line and the columns separated by commas, which spreadsheets open directly. Source: Common Format and MIME Type for CSV Files (RFC 4180)
KML: Keyhole Markup Language
An XML file format for places, paths, and areas on the Earth, read by Google Earth and most mapping apps. Each height says what it is measured from. Source: OGC KML 2.3

Experimental means this tool has not yet met the stable bar: at least 20 golden vectors, differential tests, and an independent worked example.

CSV — comma-separated values

A plain-text table with one row per line and the columns separated by commas, which spreadsheets open directly.

Source: Common Format and MIME Type for CSV Files (RFC 4180)

KML — Keyhole Markup Language

An XML file format for places, paths, and areas on the Earth, read by Google Earth and most mapping apps. Each height says what it is measured from.

Source: OGC KML 2.3