- Step-by-step editing: Click on map to create new track points, move points by dragging them, and create intermediate points by clicking on grayed markers. Click on a marker to get detailed information about this track step, and get the option to delete it.
- Routing editing: Click on map to set the starting point and destination, the routing engine will automically compute the track following map constraints. Click on the route to create intermediate waypoints that you may drag around.
- Open and edit multi-segment tracks. Create and delete segments using the "+" and "-" icons in the edit tools. Use the "Join Segments" tool to combine all segments into a single one. Split a segment in two by clicking on the scissors () in a track point popup dialog.
- Reposition tracks or waypoints by dragging them over the map, to fix GPS recording issues.
- Create named waypoints: Click on map to set points of interest. Click on a waypoint to edit its name.
Unlimited UNDOs: In step-by-step or routing edit modes, the edit
turns into Undo icon to revert last changes.
Real-time statistic data about your track
- Distance: One way ( ) and round-trip ( ) lenght of the track
- Duration: Estimated duration (one way and round-trip) of the track itinary based on the activity type. WTracks comes with default activities and timings, but you can configure your own, see below
- Maximum and minimum altitudes of the track
- Cumulated climbing and descent heights
Define your own type of activity, which will be used to computes track duration.
- Several timing models: reference points, linear polynomial...
- Automatic computation from a reference recorded track
- Share and import personal activities
Personal map configuration
Configure the list of background maps in the top right selector
- Define your preferred map order
- Hide/Show maps of your choice
- Configure your own personal map (standard tile layers or WMS/WMTS, as well as overlays that are displayed on top of the background map)
- Provides a shareable link to reopen current edited track anytime and anywhere
- Anonymous storage in the cloud
- Optional sharing of the background map
- Optional encryption in the cloud
- Link available as a QRCode for easy mobile capture
The simplest way to share a track is using the "Share" button from the File menu tab.
Altenatively, if your track file is available online, you can manually build a shareable URL using the following syntax:
https://opoto.github.io/wtracks/?url=<link to online track file>[&<option>=<value>]
where parameters are:
- url is a HTTPS URL to a GPX/KML/GEOJSON track file. Encode the URL if it contains ? or & or other special characters.
- map is the name of the map as is appears in the top-right map selecetor. Map name with special characters need to be encoded. In particular, space must be replaced by + sign.
- ext is the extension/type of the track to use for parsing it. By default the end of the URL will be considered as the extension of the file. If it is not one of '.gpx', '.geojson', or '.kml', define it using the 'ext' parameter.
- noproxy=true when access to the track URL requires credentials provided by your browser (e.g., being logged in to a remote server). This requires the server hosting the track to support cross-origin requests. If not set, the file will be loaded by a intermediate proxy, removing the cross-origin constraint, but without your credentials.
Example of shareable URL:
Example with a shared Dropbox file
You can share WTracks links to your files hosted in Dropbox by copying the "view only" file link in Dropbox, and use it as the url parameter in the WTracks URL, replacing the trailing dl=0 by dl=1, and prefixing with the file type, such as ext=gpx parameter. For example:
- Reduces file size
- Consumes less browser memory and processing, leading to faster editor execution
- Simplifies step-by-step track editing, by only keeping most relevant points
This tools looks at each point in a track, and measures its distance from the line between the previous and next points. If this distance is smaller than the configurable value (default is 5 meters) then the point is deleted. Note that distances are taking into account the elevation: the distance between 2 points separated by 1 meter in a flat line will be measured as 1.41 meters if they have 1 meter elevation difference (square root of (1²+1²).
Optionally you can also define the maximum gap in time or distance that compression should not create between 2 points.
Elevate / Cleanup
Performs bulk operations on track points' elevation:
- Elevate computes the elevation of each point of the track. If an elevation value was already stored, it is overridden with new computed value. To minimize the elevation service consumption, we limit the number of computed elevation values to 512 per track.
- Cleanup selectively deletes each track point's elevation and time data.
WTracks uses external elevation service from third parties. You need to configure your personal API keys to get this feature.
You can display a graphical interactive height profile of your track by clicking on the statistic table at the bottom of the map.
Inverts a track so that start point becomes the end point.
Trimming is an easy way to quickly delete track points at the beggining or at the end of your track. Select which end of the track you want to trim, then use the slider to define the number of points to remove. The map shows the result in real-time.
Rich configuration settings
- Persistent settings: By default your WTracks preferences and settings are stored in your browser's local storage, so that they can be restored on each of your visits. However you can deactivate this storage. See privacy section for more details.
- Personal background map: Define your own map backgrounds and overlays (see above).
- Personal activities: Define your own activities based on your individual performances (see above).
- Track display: Define the color and width of the track on the map.
- API keys: Configure your own API keys in order to activate the full WTracks features.
- Distance Unit: Choose between metric and imperial units.
For your settings to be stored, please check the "remember me" checkbox in Settings
WTracks uses third party services for elevation and routing features. To activate them, you need to configure your own API keys for these services. This gives each user the full control on his/her individual credits, with the option to use free or paying accounts.
To configure your API keys, open the menu, go to "Settings" tab, and click on "API keys". This will open a form when you can check which service you want to use, and enter the corresponding key. This key will be stored in your browser, it is not shared with WTracks server.
WTracks supports the following services, where you can create your account and obtain the API key:
- OpenRoute Service: provides both elevation and routing for FREE. For simplicity we suggest to only use this service. Get API key
- GraphHopper: provides high quality routing service . Get API key
- Google Maps: provides fine grain elevation data. Get API key (you'll need to create a cloud platform project first)
WTracks uses the following external components:
- OpenStreetMap: A map of the world, created by people like you and free to use under an open license.
- Leaflet.Editable: A Leaflet plugin to make geometries editable.
- Leaflet.FileLayer: A Leaflet plugin to load files (GeoJSON, GPX, KML) into the map without server call.
- FileSaver.js: A polyfill implementing the saveAs() FileSaver interface in browsers that do not natively support it.
- Leaflet.GeoSearch: A Leaflet control tool to lookup for addresses using OpenStreetMap.
- Google Map APIs: Online service to get elevations of latitude/longitude coordinates.
- GraphHopper: An online routing service.
- OpenRoute Service: An online routing and elevation service.
- Leaflet.Elevation: A Leaflet plugin to display an interactive height profile of a track.
- Leaflet Routing Machine: A Leaflet plugin to add routing to a map.
- extreme-ip-lookup.com: an online service to search the geolocation of IP addresses, so that we can center the map on your current location
- Trumbowyg: A lightweight WYSIWYG editor.
- jscolor Color Picker: The color picker widget to configure the track color.
- Cloud storage used for sharing tracks:
- file.io: Temporary cloud storage used for dropbox uploading.
- draganddrop.js: jQuery plugin to allow dragging and dropping of list elements.
- BrowserStack: Cross-browser testing tool, kindly offering free plans to Open Source projects :)
Thanks to all of those who contribute to these awesome projects!
WTrack is a client-side application! The server only provides the files (web pages, images, scripts, stylesheets) that will be processed by your browser. Once these files are loaded, your browser doesn't use the server anymore, all the application runs in your browser, there is no more communication with our server during execution. Our server is hence not even aware of your activity. However the application uses some third-party services that interact with backend servers, such as the one providing the map images, the elevation data, or geolocation.
In order to enhance your experience, the application stores some data in your browser, to restore your preferred settings accross different visits. This data includes your selected map style, activity type, or your last position. This information is stored in your browser local storage, which protects its disclosure. Again, this data is not known, processed nor stored by our server.
You can choose to not save all non mandatory data at any moment by unchecking "Locally save editor's state" in the "Settings / Remember me" menu:
WTrack uses Google Analytics to monitor activity and help identify which features need to be enhanced.
WTrack is a "hobby" project, developped in my free time, please consider it with indulgence :)
Feel free to send me comments
You can also join the online forum to share questions and hints with other WTracks users
The application code is available on GitHub, where you can file issues and suggestions.