As I continue to make progress on the Miles By Motorcycle mapping tools, I've been asked a number of times recently to explain the difference between the concepts of "Tracks" and "Routes" as they occur on GPSs, the maps here on the site, and in GPX files.
My hope is that this answers some of those questions.
First, a little background:
The foundation concept for all navigation is the geographic coordinate system.
For simplicity's sake, the Earth can be considered a sphere. Every point on the face of the Earth can be represented by two values. These are latitude and longitude expressed as angles from a reference slice of the planet.
Latitude angles range from 0 to 90. You will sometimes see them listed as two positive numbers with an N or S prefix meaning North or South of the equator or as positive or negative numbers where positive numbers represent North and negative ones South.
Longitude angles range from 0 to 180 from Greenwich. Similar to latitude, they are either listed as signed numbers where East is negative and West is positive or prefixed with E or W.
To make matters even more confusing, there are seemingly endless different ways that the angles themselves can be represented. In Engish speaking contexts, the most familiar seems to be degrees, minutes, and seconds but for digital uses a representation called decimal degrees is the most common. This is the one I've standardized on here.
You should make sure to set your GPS to use decimal degrees when entering coordinates from the site. For example, on my Garmin Zumo 550 there's a Format screen off of Where To -> Coordinates:
For example, the coordinates of the Starbucks near my house are 39.015374,-76.928335. (Or 39.015374 N, 76.928335 E)
The Garmin uses the N and E notation. I use the positive and negative notation.
Be aware that some projects, notably European ones, reverse the numbers and prefer to list longitude first. A classic symptom of entering your coordinates in the wrong order is that your points end up displaying on the other side of the planet.
So now we can represent any single point on the planet with two numbers.
A track is just a list of latitude longitude pairs. You can think of a track as a breadcrumb trail that gets dropped as you move. Tracks are typically generated by your GPS automatically where every so and so many seconds it adds your location at that time to a list. You could also create a track by hand simply by listing out a set of lat/lngs. For example, here is a track from the Starbucks near my house to the Best Buy across the parking lot:
Most GPSes will also draw a line on the map connecting the points of your track together. It's important to note that the track is not the line. The track is the just points. The line is drawn by your GPS to connect the dots and is for display only. Depending on how fast you are going, there can be quite some distance between the points in your track. For example, here's a track from a recent ride as recorded by my Garmin Zumo 550. If you click on it and then zoom in far enough in you can actually see where the line kinks showing where the points are. This is especially visible in tight corners.
You will notice that so far there has been no mention of maps. Tracks are just a list of points. Aside from being points on the Earth, there is no relationship between a track and any map. There's nothing preventing you from creating a track over the neighbors yard, through that building across the street, or into Area 51. As a matter of fact, you don't need a map to create a track at all. It's just a list of points.
I'm often asked, "But I want to change this track to follow this other path or extend the endpoints."
Tracks are just independent free floating sets of latitude longitude pairs. If you have a track and you want to change it you have to have some mechanism to manually add, remove, or maybe drag the individual points that make up the track. Think of track points as "yours". You provided all of them so only you know where they need to be.
I built a proof of concept track editor to let you drag individual points, at some, remove other, and cut out sections. Finishing it up is on my todo list. Right now, you can upload a track to the site and cut out sections of it. I will add the other features hopefully in the near future, time permitting.
However, because there's no relationship between a track and a map, there's no way to say, "I want to change this track and make it follow this other road." To a track, "There is no road.".
That is, unless you turn it into a "Route".
Because routes and tracks look identical on most map systems, people are often not able to tell the two apart.
Just like tracks, a route is a set of latitude longitude pairs. However, unlike tracks, routes have an underlying map and a software system called a "router" or "route engine" implied.
A track includes every point between the start and end point. A track can have many thousands of points especially if you record a long trip. They all come from you (or your GPS).
Routes typically have very few points. The latitude longitude pairs that make up the route are called waypoints. On Google Maps, most routes you use probably consist of only two waypoints, your current location and your destination. If drawn as a track, you would see a straight line from the start point to the end point, which is not terribly useful.
As I mentioned above, routes imply an underlying map and a router. You give the router your waypoints and then it, using the underlying map data, attempts to calculate a set of latitude longitude pairs that include your waypoints as best as it can by following along established roads that are present in the map data it has. The latitude longitude pairs the router returns look very much like a track. You can inspect the points as well and if you zoom in far enough you'll see that the route returned by the router also has kinks in it where each individual point is placed. Again, just like tracks, it's the points that matter. The GPS simply draws straight lines between the points in the route.
However, how the route is represented is different from a track. In a track each point comes from you. In a route, only the waypoints come from you. The points in between the waypoints come from the particular router you use. Roughly, the data for a route after it's been calculated looks like:
your first waypoint (lat/lng)
router latlng 1
router latlng 2
router latlng 3
your second waypoint (lat/lng)
router latlng 1
router latlng 2
your end waypoint (lat/lng)
In order to figure out how to route between your waypoints, the router queries its map database. It finds the closest spot on a road in the database to the point where you've placed your waypoint. From there it begins to search through the database trying to find a path along the roads in the data to get as close to the target waypoint as it can.
Given any set of waypoints, there are often many different routes that can be generated between them. For example, on my Garmin Zumo 500, the routing engine has some settings that influence how it calculates the route:
You can further tweak the choices made by the router by selecting the "avoidances":
Which router you use, what data it's relying on, what settings have been set, and even what version of the software it uses can affect the routes it returns. For example, given the same two end points, my Zumo 550 and Duncan's BMW Navigator 5 often return different routes. Google Maps and Waze have access to real-time traffic data and are thus able to return routes that take current conditions into account and can return radically different routes depending on road conditions. (I wish I had access to data like that.)
There are some motorcycle oriented routers that can add a preference for "twisty" roads.
What this all means is that when you share routes (instead of sharing tracks) the route the receiving person is going to see may be very different from what you intended. So oftentimes it's better to share a track than a route.
It is possible to convert between tracks and routes. For example, on my Zumo 550 if I import a track (see below), it will ask to convert the track into a route. So if I have a track of a thousand points, it'll attempt to turn it into a route of a thousand waypoints. This is all fine and good until the track goes off into some area that the Zumo has no map data for or where there are no roads. I learned this the hard way on last year's Trans Am Trail Trip. The symptom is that the GPS goes insane. Also, apparently there is a limit on the number of waypoints a route can have. At least this seems to be the case with my Zumo.
Some civilized GPSes have the ability to to display a track on the screen and just show you your current location relative to that. This is what I do with the maps here on Miles By Motorcycle. When you get into off the beaten path adventure riding I find that's much more useful.
You can also convert a route into a track. This is just the process of taking all the waypoints and calculated lat/lng pairs and putting them into one list. When downloading data from the Miles By Motorcycle maps, I've added an option to convert routes to tracks. This way I know the person I'm sending the track to is getting what I intended.
There are countless ways for vendors to store and organized geographic data. Each GPS vendor in addition to each online application stores their data internally in different and incompatible formats. Years ago, the need to easily exchange GPS data between devices, software packages, and online sources became apparent.
Enter the GPS Exchange Format, or GPX for short. GPX has evolved as the de-facto standard for exchanging routes, tracks, and waypoints. Pretty much everyone supports importing and exporting GPX files.
For the technically inclined:
GPX - The GPS Exchange Format
GPX files are actually just specially fomatted text files. The latitude and longitude of each point in a track or route is included long hand in the file. You could, in a pinch, edit the files by hand in a text editor if you needed to.
For the curious, a track represented in GPX format looks like:
<name>ACTIVE LOG: 28 OCT 2017 15:10</name>
<trkpt lat="40.029065" lon="-76.876805">
<trkpt lat="40.031709" lon="-76.878686">
<trkpt lat="40.033318" lon="-76.880222">
<trkpt lat="40.034856" lon="-76.882431">
You can see the latitude and longitude of each point. My Zumo also records the time and the elevation.
In contrast a route in GPX format looks like:
<rtept lat="38.993605412718" lon="-76.883354187012">
<gpxx:rpt lat="-76.883377" lon="38.993644"/>
<gpxx:rpt lat="-76.884017" lon="38.99327"/>
<gpxx:rpt lat="-76.885017" lon="38.992633"/>
<gpxx:rpt lat="-76.885757" lon="38.992126"/>
<gpxx:rpt lat="-76.885833" lon="38.992069"/>
<gpxx:rpt lat="-76.886405" lon="38.991664"/>
The rtept is my waypoint. The part under RoutepointExtension is what the router, in this case the router I use on the site, calculated.
When I plug my Zumo 550 into a computer it creates a file called Current.gpx in the Garmin/GPX folder on the device. This file contains all the routes and tracks that I have on the GPS. It's then a matter of just copying the file and saving it somewhere.
You can then upload the GPX file to this site (or to any number of sites out there) and have the data displayed on a map.
To upload a GPX file on this site, just go to your profile. Go to the "Maps" tab. Click New Map. On the left click on the upload GPX icon (second from the top on the left under the search box on the map).
There are endless numbers of sites where GPX files are shared. It's common on ADVRider. Roadrunner magazine makes many of their rides available as GPX. There's advtracks.eu among others.
Sam Correro sells GPX tracks for his Trans Am Trail route.
TransAmTrail.com is the exclusive source for Maps Roll-Charts, and GPS Tracks for navigating the Trans-America Trail - an exciting, off-road, dual-sport motorcycle adventure across the United States
It should be noted that GPX is not the only cross device format that exists. Google likes their KML format which can represent more than just tracks and routes. There's something called GeoJSON that I use extensively on the site. There's GeoRSS and others. However, GPX is the most common format for exchanging route and track data and because that's what's primarily of interest to motorcyclists it's what I focus on here. Time permitting I hope to expand support for KML so we can easily transfer data between Miles By Motorcycle and Google Maps/Earth.
My hope is that this answers some of the questions that have been asked. If something is not clear or you have any questions please feel free to contact me here or you can find me on Facebook.
You would think after all this time, that the coordinate system would get standardized into one format!
I have been a long time user of Streets and Trips to plan routes, still use the 2013 version since it was discontinued.
Currently, I use ITN Converter to plan routes, and then output for my Sygic App on my old cell phone. Taking a looking CoPilot GPS again, too. I often run into the conversion problem, as a waypoint will be off the road in the actual GPS App.
I look forward to more information!
The next article for me to write is how to use the map editor I've built here to plan routes and export them to GPX (and import that to a GPS unit ....)
One of the pragmatic differences between tracks and routes is that with routes a GPS can give you turn-by-turn directions. Because it's aware of the underlying map, and is routing you along a series of connected paths (roads), it knows when you need to transition from one path to a different path.
With a track, the best you can hope for is that it will overlay a line on top of a map and show you your current position on the map. It's up to you to interpret the map and figure out which turns to take to stay on the line.
Most GPS systems allow you to record a track (a time-series of GPS coordinates) but not routes. And now that I'm thinking about it, there's really no reason they couldn't do both. Since GPS navigation software can tell what paths (roads) you're traveling, and when you transition from one to another, all they would need to do is record a waypoint for each transition (turn). With that data, the routing engine could deterministically reconstruct the route (as long as the underlying map data hasn't changed too much.)
I think it would be worth investigating if any such route-tracking software exists, and if not, to create it.
Ben Mendis, you also have to consider the case that maybe there is no underlying map data for the area the track covers. This is often the case when you get out on fire trails and forest service roads. One thought I've had is to set up "navigation" along a track simply with an arrow and a distance showing you how far you are from the next point in the track or maybe, as you say, curate a track to point to major turning points like people do with roll charts.
nice summary of tracks and routes. Where were you 10 years ago when I was swearing at my gps! #:-))