ActivityMaxxer Open a file →

GPX viewer with elevation profile

Drop a .gpx file onto ActivityMaxxer to get an elevation profile and a speed chart from a track that stores neither. Both are reconstructed from the coordinates themselves.

A GPX file is only a list of positions

GPX is the lowest common denominator of activity formats, and deliberately so — it is an interchange format, not a recording format. A track point carries a latitude, a longitude, usually an elevation, and usually a timestamp. That is the whole file. There is no heart rate, no cadence, no power and, crucially, no distance and no speed: neither is stored anywhere in a standard GPX.

Which is exactly why so many GPX viewers show you a map and nothing else. Getting a useful chart out of one means deriving the interesting quantities rather than reading them.

How speed and distance are reconstructed

Distance is accumulated point to point using the haversine formula on the coordinates, giving a running total along the track. Speed then comes from the deltas of that total against the timestamps, and is smoothed before charting — raw point-to-point speed from consumer GPS is far noisier than the movement it describes, because each fix carries a few metres of positional error that differencing amplifies. Elevation is read straight from the elevation tag where the file has one.

A track with no sport type declared is charted as a generic Track, which shows speed rather than pace — pace in minutes per kilometre is a running convention and is actively misleading for a drive, a flight or a multi-day hike.

It adapts to how often the device recorded

A watch writes a point every second. A satellite messenger might write one every ten minutes, for three days. Both are valid GPX and both should chart honestly, so pause detection, speed smoothing and the x-axis tick format all scale off the recording's own median sampling interval rather than off constants tuned for 1 Hz files. In practice that means a sparse multi-day breadcrumb trail produces a readable chart instead of a shape made mostly of interpolation artefacts, while watch files behave exactly as they always did.

This makes GPX the format that covers everything which is not a training watch: satellite messengers such as SPOT or inReach, cameras that log location alongside photos, phone tracking apps, and anything that exports a route you actually travelled.

Tracks versus routes — the usual surprise

GPX can describe two quite different things. A track is a recording of where something went, with a timestamp on each point. A route is a plan for where something should go, and its points carry no time at all — which is legal GPX, and what you get when you export a course from a route planner rather than an activity from a recording.

A route cannot be charted here, because with no timestamps there is no axis to plot against and no way to derive speed. If you drop one, you will get an explicit message saying so rather than an empty chart. If that happens, the fix is to export the activity rather than the course.

Getting a .gpx file

From Garmin Connect on the web: open the activity, click the gear icon at the top right, and choose Export to GPX. Most other platforms and phone apps offer a GPX export somewhere in their share or download menu, since it is the format everything agrees on. If the source can also give you FIT or TCX, prefer those — they carry heart rate, cadence and power that GPX simply has nowhere to put.

Questions

Can a GPX file show heart rate?
Not in standard GPX. Heart rate can only appear through a vendor extension, and most exports do not include one. Export FIT or TCX instead if you need heart rate, cadence or power.
Where does the speed chart come from if GPX stores no speed?
It is derived. Distance is accumulated between consecutive points with the haversine formula, and speed comes from the deltas of that distance against the timestamps, then smoothed to remove GPS jitter.
Why does my GPX say it is a route rather than a track?
Its points carry no timestamps, which is what distinguishes a planned route from a recorded track. Without time there is no axis to plot against. Export the recorded activity rather than the course.
Does a multi-day or sparsely recorded track work?
Yes. Pause detection, smoothing and the axis tick format scale off the recording's own median sampling interval, so a point every ten minutes across several days charts as honestly as a one-second watch file.