All Garmin runs on one map

A neat thing that Strava premium has is a personal heatmap. It can look something like this:

Strava Global Heatmap

Garmin Connect does not seem to offer a personal heat map at all, only global heat maps. I want my own personal heat map for a number of reasons, but mostly because they’re cool. So… how do I go about that? First, looking for prior art I found this post: which was pretty encouraging that it was at least possible.


  1. Request data export from Garmin here
  2. From the exported data, get all uploaded FIT files from DI_CONNECT/DI-Connect-Fitness-Uploaded-Files – note there can be multiple archives
  3. Parse all the FIT files and grab the ones that contain the activities you’re interested in (e.g. running)
  4. Convert activity-containing FIT files to GPX files
    • I used the fitparser crate to read the data, geo-types to represent each FIT point in an intermediate representation, then the gpx crate to write those to a new GPX file
  5. Plot GPX files on the map with the map provided via Leaflet.js and the GPX drawing provided via leaflet-gpx

Et voilĂ :

“Heat map”

There are some notable differences from what I originally hoped for with this first pass. The start/end points are rendered as pins, and the “heat” aspect is purely GPS imprecision. Still, I’m thrilled – it’s super cool and I love it. I can also see everywhere I’ve traveled and recorded an activity as well.

All activities recorded in Garmin Connect


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s