GPX Merge
Paste two or more GPX files and combine their tracks, routes and waypoints into a single GPX 1.1 file — ordered chronologically by timestamp. Runs entirely in your browser, no upload.
About this tool
Use GPX Merge when you have several exported rides, runs, hikes, routes or waypoint files and need one clean GPX 1.1 document. Paste the GPX text from each file one after another; the tool collects tracks (<trk>), routes (<rte>) and waypoints (<wpt>) from every pasted document.
By default the result is one continuous track ordered by timestamp, which is useful for joining split recordings or rebuilding a route from separate stages. Switch Merge mode to keep each original segment break, or keep each source track as its own <trk> when you want the output to preserve daily stages.
Worked example
Paste two GPX documents, leave Merge mode set to single-track, and keep Order chronologically by timestamp checked. The output contains one <trk> named Merged track; points from both inputs are sorted by their <time> values so a point recorded at 07:00:00Z appears before points recorded at 08:00:00Z and 09:00:00Z even if the files were pasted in a different order.
Limits and edge cases
- Input is GPX text only. Convert TCX, FIT or GeoJSON with a dedicated converter first.
- Multiple files are represented by pasting several complete GPX documents into the same input field.
- Coordinates, elevations and timestamps are preserved as written; this tool does not simplify or resample tracks.
- Timestamp sorting expects ISO-8601 / RFC-3339 values such as
2024-01-01T08:00:00Z. Untimed points keep their input order and sort after timed points. deduperemoves only consecutive duplicate points with the same latitude, longitude and timestamp; it does not perform fuzzy GPS matching.
FAQ
Can I merge more than two GPX files?
Yes. Paste each complete GPX file one after another in the input box. The parser scans the combined text and collects every track, route and waypoint it finds.
What is the difference between the merge modes?
single-track creates one track with one continuous segment. single-track-multi-segment creates one track but keeps each original segment break. separate-tracks writes each source track as a separate <trk> in the output.
Will waypoints be kept?
Waypoints are kept by default, including their name, description, symbol, elevation and timestamp when present. Turn off Keep waypoints if you only want tracks and routes in the merged file.
Does the tool upload my GPS data?
No. The merge runs locally in the browser WebAssembly module and returns text directly on the page.
Developer & Automation Access
Run it from the terminal
Same engine as this page, headless — via the gizza CLI:
gizza tool gpx-merge "<?xml version="1.0"?>
<gpx version="1.1"><trk><name>Morning</name><trkseg>
<trkpt lat="52.100" lon="5.100"><time>2024-01-01T08:00:00Z</time></trkpt>
</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-merge/?input=%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Cgpx%20version%3D%221.1%22%3E%3Ctrk%3E%3Cname%3EMorning%3C%2Fname%3E%3Ctrkseg%3E%0A%20%20%3Ctrkpt%20lat%3D%2252.100%22%20lon%3D%225.100%22%3E%3Ctime%3E2024-01-01T08%3A00%3A00Z%3C%2Ftime%3E%3C%2Ftrkpt%3E%0A%3C%2Ftrkseg%3E%3C%2Ftrk%3E%3C%2Fgpx%3E&merge_mode=single-track&sort_by_time=true&dedupe=true&include_waypoints=true&track_name=Merged%20trackMachine-readable descriptor: tool.json — title + parameters JSON Schema for agents.
