GPX Splitter

Paste a GPX track and split it into segments by distance, elapsed time, or pause gaps. Export a new multi-track GPX or inspect a segment summary — all locally, without uploads.

Try:
Split GPX / summary

What this tool does

Paste a GPX track and split it into smaller segments. Choose distance to cut after a target length, time to cut after an elapsed duration, or stops to start a new segment when there is a large timestamp gap between points. The tool can output a fresh GPX document with one track per segment, or a text summary of distance, duration, and point counts.

Everything runs locally in WebAssembly. No map service or upload is required.

Worked example

With mode=stops, stop_gap_s=120, and output=summary, a track with a 20-minute pause produces two segments:

Split into 2 segments (stops, on gaps over 120 s).

Segment 1: 0.11 km (0.07 mi), 2 points, 0:01:00  [2024-01-01T00:00:00Z → 2024-01-01T00:01:00Z]
Segment 2: 0.11 km (0.07 mi), 2 points, 0:01:00  [2024-01-01T00:21:00Z → 2024-01-01T00:22:00Z]

Switch output to gpx when you want a copyable GPX file with tracks named Original name - Part 1, Original name - Part 2, and so on.

Limits and edge cases

FAQ

Does this upload my route?

No. The GPX parser and splitter run locally in your browser. The tool does not call a map API or send your track to a server.

Which split mode should I choose?

Use distance for equal-length chunks, time for workout intervals or elapsed duration chunks, and stops when your recorder paused for breaks and you want each continuous movement section separated.

Why did time or stops mode fail?

Those modes need timestamps on the GPX points. If your file has coordinates but no <time> elements, use distance mode instead.

Are sensor extensions preserved?

No. The generated GPX keeps coordinates, elevation, and timestamps. Extra extensions such as heart rate, cadence, power, or app-specific metadata are dropped in this version.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool gpx-split '<gpx><trk><name>Ride</name><trkseg><trkpt lat="0" lon="0"/><trkpt lat="0.01" lon="0"/></trkseg></trk></gpx>'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/gpx-split/?gpx=%3Cgpx%3E%3Ctrk%3E%3Cname%3ERide%3C%2Fname%3E%3Ctrkseg%3E%3Ctrkpt%20lat%3D%220%22%20lon%3D%220%22%2F%3E%3Ctrkpt%20lat%3D%220.01%22%20lon%3D%220%22%2F%3E%3C%2Ftrkseg%3E%3C%2Ftrk%3E%3C%2Fgpx%3E&mode=distance&distance=5&unit=km&time_min=30&stop_gap_s=120&output=gpx

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.