About The LifeMap

Basic LifeMap

This is the non-Supporter LifeMap. Some browsers/devices cannot display lots of data on the map - in those scenarios, the LifeMap may not load your activity history or it may crash the browser entirely.

The activities are cached in your browser, and this cache can be cleared from within CityStrides settings (linked from the top right menu). This cache helps speed things up, so your entire lifetime of running data doesn’t need to be sent to you every time you visit the LifeMap. You shouldn’t ever have to clear the cache, but :man_shrugging: computers.

Advanced LifeMap

This is the Supporter LifeMap, which adds some features (Activities are filterable by date, individual activity highlighting on hover, each activity is a link, and it’s wildly faster).

Each user has two LifeMaps: one that contains private data (this is only displayed to you), and another that contains public data (this is only displayed to everyone else). If your account is completely private, then your public LifeMap version will be blank.

There is an ongoing issue where the Advanced LifeMap does not get immediately updated sometimes.
You can report issues like that here: This is the thread for Advanced LifeMap problems

How the Advanced LifeMap is generated

Every time an activity is synchronized into CityStrides, a process is run in the background to completely rebuild your advanced LifeMap.

:nerd_face: version:
Each activity has a series of GPS coordinates that your tracking app records while you’re out on your run/walk. After the activity has been synchronized into CityStrides, there’s a bit of code that collects all of the activity’s coordinates & uses it to generate an “encoded polyline”.
There’s some code that collects all of the encoded polylines for your account, converts it to GeoJSON data, and converts that to mbtiles files with tippecanoe.
Mapbox GL JS displays that mbtiles data as a layer on the map.

3 Likes