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.
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
- Time and stop modes require parseable GPX
<time>values on track points. - Distances use great-circle haversine distance between consecutive points.
- Distance/time splits duplicate the boundary point so segments remain geometrically contiguous; stop splits leave the real recording gap.
- The output preserves latitude, longitude, elevation, and timestamp values, but GPX extensions such as heart rate, cadence, or power are not retained.
- This is deterministic text processing; there is no interactive map preview or click-to-split UI.
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=gpxMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
