Page 1

Bikemap - app for maps, creating & viewing GPS routes and navigating with a smartphone

- Several base maps & overlays: OpenStreetMap based MTB maps, orienteering map "MapAnt", National Land Survey's topographic & ortographic maps, hillshade and Strava heatmaps

- GPS tracks on map: from GPX file or from your Strava activities

- Create GPX routes: autorouting & straight line drawing, editing and saving as a GPX file to transfer to e.g. Garmin devices or for sharing with other people


Full functionality is available on a large screen devices: e.g. PC and iPad, subset of functionality is available on a small screen device e.g. typical smartphone.

If you want to access your Strava activity data from Bikemap app, then a Strava mandated secure authorisation process is needed to connect application with Strava.

Choose map base layer and one or more overlay maps

For guidance on MTB map path color coding etc. please refer to MTB map guide or press info-button ("i") in the Bikemap.

When you pan (move) the map and let it be still for 10 seconds it saves the coordinates of the map center so that when you open Bikemap next time it is automatically centered on these coordinates.

You can also use minimap on the bottom right corner to move map center.


Use on a smartphone

For best user experience on a smartphone first open Bikemap with browser: Safari on iOS or Chrome on Android. Then from browser menu select "Add to Home Screen". When you start Bikemap directly from the home screen it is started as a full screen web application which provides a much better user experience when using it while on the move e.g. biking in trails in a forest. 

Also use of mobile menu on the top right-hand corner provides much better user experience, especially for Strava functionality in this "progressive web application" mode.

To show your location on the map press location-button in the top right corner, just below the map scale icon.

View GPX track on map

- Use "Strava" and "GPX" buttons to select source for GPX track

- GPX: Choose a GPX file from your PC / device

- Strava: Choose Strava activity from your Strava account

For Strava you need to first provide Bikemap read access to your Strava account: Press "Connect with Strava"-button to provide Bikemap with Strava authorisation. NB! Please note that connecting Bikemap to Strava saves user's Strava access token to the PC or device where browser is running. Bikemap app only asks for read permission to your public data: it will not have access to you private data nor have rights to add or modify any of your Strava data. Still it's recommended you only connect to Strava from a PC or device that you own and is secure.

Once Strava is activated select "Year" and quarter with buttons I - IV to filter activities shown in "Activities" dropdown menu. Small map preview is available for activities when you hover over an activity in "Activities" dropdown menu.

You can open multiple GPX tracks to be shown on the map. Heatmap-button opens GPX tracks of all activities that are listed on "Activities" dropdown menu. Press "Clear"-button to remove all GPX tracks from the map. Press "Hide" / "Show" buttons to temporarily hide and show GPX tracks to allow you better see underlying map details which GPX track might be covering.


Create GPX routes

You can create GPX routes and transfer them to e.g. your Garmin device for navigation. To create route use either buttons on the map or shortcut keys. Following functionalities are provided:

Draw ("d"): Start / Continue drawing a route. Default is autorouting-mode. Typically works best when you let it only route short distances on map by building the route from short sections. Autorouting tries to find the shortest path, however OpenStreetMap data does not always support that in the most optimal way, so do not be surprised if it sometimes makes unusual routing choices. In that case simply undo the last route section and try again by routing a shorter distance so that you can better guide autorouter.

Undo ("z"): Undo last route section.

Toggle routing mode ("t"): Change autorouting-mode to straight line drawing mode and back. Useful when OpenStreetMap data is not allowing for sensible autorouting results e.g. when OpenStreetMap paths are not connected or path coding is incorrect e.g. "Cycling: no" for paths that are actually rideable with bike. Typically line drawing mode is only needed for short sections of route.

Finish ("f"): End drawing mode to finalise route. Once route has been finalised you can hover mouse over route line to see which way route goes.

Clear: Clear route. NB! "Undo"-button will NOT recover the route.

Save as GPX ("s"): Save route as a GPX file. You can also save an open Strava activity track as a GPX file. GPX file is downloaded to your browser's default download folder. Please give "Activity Name" for the route. Activity Name is not the same as filename, but rather the name that e.g. Garmin devices show in their "Courses" menu where you select a route for navigation.

Save as Route & Open Route: Saves route as a Bikemap's route file for later editing. Route file has a ".rte" extension and is saved in your browser's default download folder. Open Route loads previously saved route which can be then edited, saved as a GPX file and again saved as a route file.

Hovering the mouse pointer over the route shows arrows indicating the direction the route has been drawn.


Share GPX tracks and routes with other people

You can share a GPX track loaded from a file as well as a Strava activity GPX track. No other information about your Strava activity is shared except GPX track. You can also share route you have drawn with Bikemap, allowing others to continue extending and modifying route. 

When you share, also your map center point, map layers you have selected and zoom level are shared.

When you share a track or route you will get a link (URL) that you can share via email, Whatsapp etc. Please note that anybody receiving the link can open the track or route you shared, there are no other access control mechanisms except sharing the link with only those you want to have access.

Sharing of track or route can be canceled later. After you share you will get instructions how to cancel your share. Please save the instructions as they are specific to the track or route you shared and cannot be accessed later.

When you share a track or route it is shared as it is at the time of sharing (as a "snapshot"). Should you make any further edits to a route, those will not be reflected in the shared route, though you can obviously share again the updated route. Likewise any people who opened your shared route via link cannot make modifications to the original shared route.

For sharing Bikemap needs to store your track or route and Bikemap state (map center, map layers, zoom level) to a server database. All this data is stored encrypted on the server and can only be decrypted with the link (and sharing code embedded in it) you received at the time of sharing.

NB! No warranties are given for the availability of the data you have shared and which is stored in Bikemap server database. Loss of data is possible so please do not consider sharing track / route as a reliable mechanism for saving or archiving your data. 



Edit routes

When you have created a route and finished drawing you can edit any autorouted section of the route. Just click route path with mouse and then drag path to insert a new waypoint. When you release mouse button autorouter will re-route that section of route. 

You can also move waypoint markers and adjacent route section will automatically move also. NB! You cannot edit straight line sections of the route.
 
When you are finished with editing click map outside of route path or press "f" so that waypoint markers disappear from map. This will properly finish your editing and you can save the edited route.


Transfer GPX file to Garmin or Suunto for navigation

Many recent Garmin bike computers can show GPX routes on display to allow you to navigate routes you have created with Bikemap. Note that no turn-by-turn instructions are provided, only path on the display that you can follow. 

To copy GPX file to Garmin: connect Garmin device to your PC / Mac and then copy GPX file to Garmin / NewFiles folder. Next time you start Garmin it should show new route in the Courses menu. NB! This does not necessarily work the same way in all Garmin devices.

Please see instructions in "MTB maps in Garmin to enable MTB map on your Garmin device or mobile phone.

Transfer of GPX route to Suunto sports watch is possible at least via Suunto www.movescount.com web application: Select "+" from right top-corner and pick "Plan a route" from dropdown menu, then in map screen select "+" from left bottom-corner and "Import route" from dropdown menu. Save route and then from the left select "Use with my Suunto...", after next synchronisation with your Suunto watch the GPX route should be available in your Suunto watch.


Contribute to OpenStreetMap to improve MTB map

If you enjoy MTB-map in Bikemap please consider giving back by contributing to OpenStreetMap data. OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. MTB map is based on OSM data and especially "colour coding" of trails to indicate how suitable they are for bikes to ride is entirely based on volunteers contributing to OSM data. Please refer to (in Finnish) "simple OSM editing for MTB-map" document to learn the basics.

OSM editing can be started from Bikemap app: from info-dialog use the button "Edit trails in OpenStreetMap iD-editor" to launch OSM iD-editor with the same view to the map as in Bikemap. If you have an GPX track or Strava activity open in Bikemap it will also be presented as a GPX track in the iD-editor, helping to add any new trails to OSM data and provide a useful reference.

Even small contributions to OSM data like adding or categorising a single trail for MTB riding data will make a difference and help fellow riders to discover new trails to ride.

Report errors or problems in Bikemap app

If you encounter an error such as crash or non-working functionality when using Bikemap app please report the problem to support@finomena.fi. Please describe the problem in detailed enough way that I can try to reproduce the problem. Please also tell what device, operating system version and browser you were using when you noticed the error.

I'll try to fix all significant errors that are reported however given that this is a free service and a hobby project I will give no guarantees.

If you have feature ideas you can send those also to the same email address.


Data collection, processing and storage

Bikemap app runs locally in your browser, however it needs to access web services for following purposes:

- Several map tile services including Bikemap hosted Finland MTB maps, MapAnt orienteering & contours map, NLS maps provided by Kapsi ry, Strava Heatmap and Bikemap hosted Hillshade: Any potential user metrics (e.g. IP address of user and map tiles loaded) collection of those web services is managed by the controllers for those services. Bikemap managed map tile services do not collect any user data.

- Bikemap managed OSRM service for autorouting of routes drawn by user: service maintains access logs with IP address anonymization which are deleted daily

- Connecting with Strava requires use of Bikemap's OAuth proxy service (hosted by Amazon Web Services) which will temporarily store user's Strava access token for a maximum of 2 minutes or until Bikemap app reads it from proxy service whichever happens first. 

- Strava API service for presenting list of Strava activities and loading GPX track of user selected activities. When Strava functionality is used Strava will collect similar kind of usage information as they do for their own website, however Strava has only access to specific API requests that Bikemap is sending to Strava service. 

- Sharing of GPX tracks and routes requires storing of those tracks / routes to Bikemap managed sharing service. Tracks and routes are stored in service database in encrypted format and can be decrypted with the sharing key code that is not known to the sharing service.

- If user has opened an GPX track or Strava activity on Bikemap and then opens OpenStreetMap iD-editor from Bikemap info-dialog Bikemap will automatically upload first GPX track that user had opened to Bikemap hosted file upload server so that it can be opened in OpenStreetMap iD-editor to assist in editing OSM data. GPX tracks uploaded this way will be automatically deleted from file server in 24 hours.

- Bikemap app collects statistics of features used by user and sends information to Bikemap metrics service regularly. This information is collected to support further development of Bikemap features and monitor service quality. Information collected does not contain any user data, only what features were used (e.g. "route was drawn" or "Strava activity was loaded"), at what time, coordinates for map center, device & browser type, referring website and how many times Bikemap has been opened on a specific browser. To protect user privacy map center coordinates are not recorded accurately as they are rounded to one decimal accuracy for latitude and longitude (i.e. accuracy of 11,1 km). None of the above described data is shared with any 3rd party.

Furthermore Bikemap stores locally in the user's browser's local storage in PC / device following information: Strava API access token (if user has connected with Strava) and map center coordinates. This information is only available to user of the PC / device and Bikemap app.

Copyrights and kudos


Map data sources & map styling
Map data © Openstreetmap contributors under the CC-BY-SA
MTB map data and technology contributed by mountain bikers, MTB map tile processing & hosting service by Arpotechno
MTB map cartography styling by Antti Nissinen
Garmin MTB map cartography styling by Tapio Kaasalainen
Orienteering map © by MapAnt-team under the Creative Commons License
Laser-scanning, topographic and ortographic data for orienteering map and hillshade and also as map layers by National Land Survey of Finland under the Creative Commons License
Strava heatmap © by Strava


Kudos to Open Source Software projects that enabled Bikemap development

Leaflet map component
Project OSRM routing engine
Leaflet Routing Machine plug-in
Geospatial Data Abstraction Library (GDAL) for raster map tiles processing
Leaflet GPX-track utility © and all rights reserved 2013-2017 Maxime Petazzoni
Leaflet Editable, Toolbar, Easybutton, Distance-markers, MiniMap, GeometryUtil, gps-to-gpx, TextPath plug-ins
Hyperapp JS UI-framework
Bulma.io CSS-framework
Font Awesome and Icons8 icons
MapnikTilestrata & mod_tile for tile serving


Bikemap technical architecture diagram


Bikemap application

Copyright (c) 2018 Markus Suomi (markus.r.suomi at gmail.com) All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

   1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

   2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

(*) Why english for a finnish MTB map app? I learned and benefited a great deal from other people's map software projects while developing this app. It was easy to find good examples by googling as long as the documentation was in english (rather than in spanish, italian, german etc.). Likewise I hope that this app helps somebody else in their hobby project. Source code is not yet released to open source, but hopefully will be after I have cleaned up it a bit.