Imagine you are hiking or walking and you are using a GPS to record your track. Modern devices such as Garmin's watches allow you to "Save Locations" along the way, which can be a handy way to mark some kind of place, be it a trail junction or a fun street sculpture you're like to remember. Turns out that getting this data off the device in a usable and shareable way is much harder than it should be. I am sure (or at least I hope) there are better ways than the one explained here, and if there are, please share as a comment. Thanks!
Here's one (oversimplified) example: I have walked a brief loop in our apartment complex, and have marked two locations, the entry gate and the clubhouse. It is rather simple to imagine how this kind of map can be helpful when you're hiking or running and have a little marker saying "Trail junction" so that you know to stop and look for signs.
(Full disclosure: Getting the map to display like this takes a little extra effort because you need to upload a track with waypoints. I will describe this process in a follow-up post, for now just assume you are creating those waypoints and want to export and share them with others.)
To explain the issue and the solution, here's a brief walk through of what you think might or should work (but doesn't), and what it takes to eventually make it work.
- You try to export the track as GPX (the most widely supported format) and that works (from example from Garmin Connect), but as it turns out, the waypoints are not included in the GPX (even though GPX does have explicit support for waypoints).
- Next you try to export TCX, which is Garmin's homegrown format and you're thinking that maybe they'd be more careful to export all relevant data to this format. Sadly, it's the same as for GPX, the waypoints are not included.
- You're hoping that Garmin's new FIT format will fare a little better. Sadly, Garmin Connect does not even have a "Export FIT" option. And even if it had, it would be very hard to work with it since FIT is essentially closed and undocumented.
At this point you consider yourself stuck, assuming that there is no way to get your data off the device. This is where I turned a bit desperate and resorted to install some proprietary software, Garmin BaseCamp. I was never a fan of the closed ecosystems created by all major manufacturers of outdoor equipment, but this seemed like the only possible way to get to my data.
Once you have BaseCamp installed and your device connected, you see a list of the devices data in the lower left window. As you can see, the waypoints and the tracks are dissociated, which explains a bit why the waypoints do not show up in your exported activity data.
The next step is to select the waypoints and the track (most likely just one track) that you want to export. The window lets you control filtering/sorting a bit, which should make it a little easier to find all the items you need to select. Once you have selected all of them, you can choose "Show on Map" from the context menu and should get a good idea if you have indeed selected everything you wanted to select.
At this point, we have everything together that we want: A track of GPS track points, and a set of waypoints that we created along the way, pointing out notable locations along the way. Now we need to package these things up and get them out of Garmin's tool.
For this, from the "File" menu select "Export Selected User Data...", which should bring up a dialog showing export options. A number of formats are supported, but we stick to the default, "GPX 1.1". Select a place to save the file, and you are done liberating your data!
If you want to fine-tune the waypoints (such as adding names that will show later on as shown in the above map display on my watch), then you can edit the GPX. If you are not familiar with XML, that might sound a little intimidating, but as long as you are careful, it's not so hard to do.
As an example, I here is the complete example GPX file with waypoints shown on the watch display above. It is not huge, but too big to show here, and I have cleaned it up from a lot of unnecessary things that BaseCamps adds. Let's just focus on the things you need to edit. Waypoints show up like this:
<wpt lat="32.299496736377478" lon="-110.824520587921143">
<desc>This is the main gate of the Ventana Vista Apartments complex.</desc>
This should be pretty self-explanatory, with a waypoint being defined by latitude and longitude, and then having additional information such as elevation, a timestamp, a name, and a description. While cleaning up the data I have removed a few extra items, but the ones shown here are the ones that matter.
When you export, your waypoints will get some generated names (an easy way to check which names is to import the GPX into Google Earth, which will display the track and all waypoints). By carefully inserting your names between the
</name> XML tags, you can change the name of the waypoint.
BaseCamp does not create waypoint descriptions, but those can be useful to give additional information in applications such a Google Earth, where people clicking on waypoints can learn more about the waypoint. The picture from Google Earth shows how the description will be made available when clicking on a waypoint. Don't count on this being available to users on smaller devices such as watches, though, so definitely try to use meaningful and short names.
If you want to add descriptions, then insert a new line into the GPX file right after the line with the name, and add the waypoint description delimited by <desc> and </desc> XML tags. Make sure to get these tags right, or your GPX will become corrupted. A good way to check is to load the GPX into Google Earth when you're done, and see whether all your waypoints still show up, and have the descriptions associated with them.
So now you're done not just creating a self-contained and shareable GPX file with a track and waypoints, but you also have added useful information for those later using this file on their computer or devices. Congrats for freeing you data, and let's hope that Garmin at some point will make it easier to use your own data than it is now.