drawamap

GPX viewer

Drop a GPX file here

Tracks, routes and waypoints draw straight away. The file stays on your machine.

.gpx. Not .fit or .tcx. GeoJSON, KML and CSV work too.

Three things live in a GPX file

GPX is the GPS Exchange Format, written by Dan Foster at TopoGrafix. Version 1.1 arrived in 2004 and that’s where it stopped. Twenty years without a new version is unusual, and it’s why GPX works everywhere: Garmin, Wahoo, Strava, Komoot, OS Maps, a decade-old handheld in a drawer. Everyone implemented it once and nobody moved the goalposts.

Inside, it’s XML holding three kinds of thing. People mix them up constantly, and the difference changes what you should do with the file.

<wpt>
A waypoint. One marked spot with a name: a car park, a water stop, the gate you keep missing. Each one opens here as a marker you can drag or rename.
<trk>
A track. The breadcrumb trail of where you actually went, logged by the device every second or few seconds. Tracks are split into segments, and each segment opens as its own line.
<rte>
A route. A plan rather than a record: a short list of turn points you intend to follow. Komoot and plotting sites sometimes hand you one of these instead of a track. It opens as a line too.

All three open here. A file can hold any mix of them, and plenty hold all three at once: a planned route, the track you actually recorded following it, and the waypoints you dropped along the way.

What it keeps and what it bins

Positions and names. That’s the lot. Every track point’s latitude and longitude comes through, the track or waypoint name becomes the label, and everything else in the file is discarded on import.

The discarded pile is long: <ele> elevation, <time> timestamps, and the whole extensions block where Garmin stashes heart rate, cadence, power and temperature. Also descriptions, symbols, link tags and the accuracy fields like hdop. Which means no elevation profile here, no average speed, no splits, no calories.

That’s a real limitation and worth stating before you waste ten minutes looking for the chart. For analysing a ride, use the app that recorded it. What this is good for is the geometry: seeing where a track actually goes, measuring its length, comparing two of them on one map, cleaning up the bits that are wrong.

One practical consequence. If you export GPX from here, the file that comes out has no elevation and no times, because they were gone before you touched anything. Fine for loading a route onto a device to follow. Not something to send to Strava and expect your climbing total back.

Trimming a track, which is the thing this is actually good at

Almost every recorded track has rubbish at the start. The watch is still finding satellites while you stand in the car park, so the first thirty seconds wander across a field at an implausible speed. Some devices add a point at 0,0 before they get a fix, which drags the whole map out to the Atlantic.

Load the file, switch to Select, click the track, and drag or delete the offending points. Then export. The same job in a desktop GIS is a twenty-minute detour.

Same move for privacy. Drag the first few points away from your front door before you share a ride. Nothing was uploaded, so the trimmed file is the only copy that exists.

Long tracks, and where it strains

A one-second recording generates 3,600 points an hour. A long ride can be forty or fifty thousand, and a multi-day walk logged on a phone can run past a hundred thousand. The map will draw those. Editing them is another matter, since every point becomes a draggable vertex, and the browser starts to feel it.

The share link has a hard ceiling, too. It encodes the whole drawing into the URL rather than storing anything server-side, and a dense track won’t fit. You get told, and pointed at the GeoJSON download instead. Coordinates in a link are also rounded to five decimal places, about a metre, which is below GPS accuracy anyway but worth knowing if you’re comparing exports.

Getting the data out in another format

GeoJSON if it’s heading into a web map or a script. KML to open it in Google Earth, which draws a track nicely draped over terrain. CSV for a spreadsheet, though that only takes markers, so a track has nowhere to go. GPX back out if you just wanted to tidy it.

Going the other way works as well: drop a GeoJSON or KML file on the map and export it as GPX for a device. A polygon converts to a closed track, since GPX has no idea what an area is.

Where this sits among the other GPX viewers

There are plenty. gpx.studio is excellent and does elevation properly. Strava, Garmin Connect and Komoot all render a file you upload. We’re not claiming to have beaten any of them at what they do.

Two differences, both narrow. Your file isn’t uploaded: it’s read in the browser and drawn there, so nobody gets a copy of your movements in exchange for looking at them. For a GPS track that’s a stronger argument than it is for most file types.

And the track is editable the moment it loads, in the same tab, with undo. Drag a point, cut a section, relabel it, add a marker where the gate was, then export or share a link. Most viewers render and stop there.

FAQ
Does my track get uploaded?
No, and for a GPS track that's worth dwelling on. A commute log shows where you live, where you work and when the house is empty. This page reads the file off your disk and draws it in the tab, with nothing sent anywhere and no account to make. Map tiles come from a tile server, which sees roughly what area you're looking at and never sees the file.
Where's the elevation profile?
There isn't one. Elevation and timestamps are dropped at import, so there's no climb total, no pace, no moving time. It draws the shape of the route and stops there. Strava, Garmin Connect and gpx.studio all do the numbers properly if that's what you're after.
Can it open a .fit or .tcx file?
No. FIT is Garmin's binary format and needs a decoder; TCX is Garmin's older XML one. Both export to GPX from Garmin Connect, Strava or your watch's own app, so grab the GPX version. Strava gives you GPX for any of your own activities from the three-dots menu on the activity page.
Why did my track come in as several separate lines?
Because the file has several track segments. A device starts a new segment when you pause the recording or when it loses signal in a tunnel, and keeping them separate is more honest than joining the ends with a line you never walked. One track with four pauses opens as five lines.
Can I export GPX back out?
Yes. Markers become waypoints, and every line, polygon and circle outline becomes a track. It's valid GPX that any device will load, with the caveat above: no elevation and no timestamps, because they weren't kept on the way in.

More map tools