A free third-party tool which draws all your activities onto a single explorable map.
Hosted publicly at http://strava-atlas.herokuapp.com/, unless that starts causing trouble.
To run your own copy of Strava Atlas:
-
Clone this repository.
-
Register a Strava API Application to get a "Client ID" and "Client Secret". Put them in a file called
.env
, in the base of the repository. This file should look like:STRAVA_CLIENT_ID=12345 STRAVA_CLIENT_SECRET=0123456789abcdef0123456789abcdef01234567
-
Run
yarn
to install dependencies. -
Run
yarn build
to build the application. -
Finally, run
yarn start
to start the server. Strava Atlas should be available at http://localhost:5000/.
Deploying a copy of Strava Atlas on a service like Heroku should be relatively straighforward. Tips for specific platforms:
- Heroku: Strava Atlas can be deployed directly from the GitHub repository, as long as you set
STRAVA_CLIENT_ID
&STRAVA_CLIENT_SECRET
as Heroku "Config Vars".
Contributions to Strava Atlas are welcome! 😀
Bug reports and suggestions for changes can be posted as GitHub Issues.
If you wish to contribute code, that's fantastic! I suggest you start by describing your intended change in an issue, so we have the chance to talk about it first.
- I intend for Strava Atlas to support Chrome, Firefox, and Safari. However, I do not intend for Strava Atlas to support older versions of any of these browsers.
The cross-storage
library allows one site to access the localStorage
of another. Using this, you can access Strava Atlas data from other sites. This involves two steps:
-
First, open the JavaScript console on https://strava-atlas.herokuapp.com/ and turn on this feature. You do this by setting
localStorage.crossStoragePermissions
to apermissions
object, as described in the cross-storage docs. (origin
should be provided as a string, rather than a regexp.) For instance, to make Strava Atlas data accessible from my Observable notebooks, I run:localStorage.crossStoragePermissions = JSON.stringify([ {origin: '^https://joshuahhh\\.static\\.observableusercontent\\.com$', allow: ['get']} ])
-
On the client side, access Strava Mapper as the cross-storage docs describe, starting with
new CrossStorageClient('https://strava-atlas.herokuapp.com/hub.html')
.
This is hacky / provisional / subject to change.
Strava Atlas is inspired by Jonathan O'Keeffe's Strava Multiple Ride Mapper.