Live Online Convertergpx → geojson

GPX to GeoJSON Converter

Converts waypoints, routes and tracks of a GPX file to GeoJSON with GDAL's ogr2ogr.

Upload a .gpx file. The worker converts waypoints, routes and tracks. A GeoJSON file holds one layer, so a GPX with more than one of them gives a ZIP with waypoints.geojson, routes.geojson and tracks.geojson. Elevations become the third coordinate.

Drag a file here to convert, or select file

Accepted: .gpx · max. 50 MB

Direct upload to the GDAL worker (Fly.io, Frankfurt)Files are deleted after the conversion

What the converter does

  • Waypoints, routes and tracks are all converted; empty ones are skipped and listed in the report.
  • One non-empty layer gives one .geojson; several give a ZIP with one .geojson per layer.
  • Elevations (<ele>) become the third coordinate (GDAL open option ELE_AS_25D=YES).
  • A track becomes a MultiLineString with one part per track segment.
  • The helper layers route_points and track_points are not exported, because routes and tracks contain the same points. The time stamps of single track points exist only in track_points, so they are not in the output; the report says so.
  • The report below the upload shows layers and features read and written, skipped layers with the reason, GDAL's warnings and the exact commands.

GDAL command the worker runs

sh — gdal
$ogr2ogr -f GeoJSON converted.geojson input.gpx waypoints -oo ELE_AS_25D=YES

For a GPX with waypoints only. Otherwise the worker runs one command per non-empty layer, e.g. ogr2ogr -f GeoJSON layers/tracks.geojson input.gpx tracks -oo ELE_AS_25D=YES.

Tested with

Test fileResult
GPX with 2 waypoints, 1 route (3 points) and 1 track with 2 segments (5 points with elevation and time)ZIP with waypoints.geojson (2, PointZ), routes.geojson (1), tracks.geojson (1, MultiLineStringZ with 2 parts); 4 of 4; route_points (3) and track_points (5) listed as not exported
GPX with 3 waypoints onlyOne GeoJSON with 3 of 3 waypoints; empty routes and tracks listed in the report

Tested on 24 Sep 2026 with the worker code of this site and GDAL 3.10.3 (conda-forge build on Windows). The worker image runs the Debian build of the same GDAL version; the live worker was not part of these tests.

Limits

  • Upload limit: 50 MB per file.
  • Time stamps of individual track points are not in the output (only in the layer track_points, which is not exported).
  • Each GDAL step may run for up to 240 seconds; a longer run is stopped with an error message.

Frequently Asked Questions

Are waypoints and routes converted too?

Yes. Waypoints, routes and tracks each become their own GeoJSON. Only the helper layers route_points and track_points are left out; the report lists them with the reason.

Are the elevations kept?

Yes, as the third coordinate. In the test the first track point came out as [6.9583, 50.943, 53.0].

What happens to my file?

Your browser uploads it directly to the GDAL worker on Fly.io (region Frankfurt). The worker converts it in a temporary folder and deletes the folder after sending the result, or immediately if the conversion fails. Files are not stored permanently.

Related conversions