This is a simple map, using Google Maps JS API to display on a single Google map all your runs from your CycleMeter database.
CycleMeter is an IOS application to record your rides, hikes and other physical activities on your phone. It records your position, speed, altitude, heart rate, etc. and stores them in an sqlite3 database on your phone, optionally synchronized across devices with iCloud. Cyclemeter allows you to share your workoute data from their web site. Once a workout is completed, Cyclemeter uploads the data on cyclemeter.com and shows it in web page and a KML file. However, it does not provide a way to map all your rides on a single map. Hence this little project.
This web application extracts the data from the sqlite3 database and builds a map to display every run stored in the database. It displays them as "clustered" markers on Google Maps. A click on specific markers shows the run's track as a KML layer on the map. See screenshots below.
The CycleMeter DB file (Meter.db) needs to be uploaded from the iPhone to the web site where the web application runs. See the FAQ on Cyclemeter Support site to see how to use iTunes file sharing to retrieve the file. You also need to have chosen to share the run information on the Strava site (Settings / Map / Share Map), as this app uses KML file stored on the Strava site to show the workouts track on the map.
- A web server to host the static pages, the CGI script (perl), and the CycleMeter sqlite3 db.
- You will need a Google Maps JS API key
- Perl dependencies on the server: CGI, JSON::XS, DateTime, DBI, DBD::SQLite
- Drop the files in a web accessible directory
- Upload the CycleMeter Meter.db file to your server: It should be in a non web-accessible directory on the server.
- Edit index.html to set your Google API key (look for 'key=' near the bottome of the file)
- Edit runs.json.cgi to set the path to the CycleMeter Meter.db file
- Configure your web server to execute .cgi files as CGI: ex. Apache
AddHandler cgi-script .cgi
Caveat: Obviously, this web app will display personal details about your whereabouts, etc. Make sure to protect the web site with a password if you want some privacy...