The Garmin Edge 500 cycling computer is a pretty clever unit doing most of what you might want it to, at least if you’re a cyclist. I would like to use the garmin edge 500 to tag my photos with the location at which they were taken. This would avoid the need for 1) a dedicated gps tagging thing-a-ma-bob, like the nikon gp-1, and 2) a camera which can interface with the gps tagging thing-a-ma-bob, and at least the nikon d3000 is lacking this capability. But not to worry a little bit of hacking later and there is a solution.
This solution comes in a few parts, first a class used to parse the garmin .fit file format, second a utility to dump the contents of the .fit file format into a readable format that I could deal with. Finally a little thing that goes through the gps data, and makes a path and reads the time from the photo and interpolates photo location. Pretty awesome. Requires exiftool, which can be found here. And finally, the goodies can be found here, unzip and drop where you want them. To run do
./fit_geotag fitfile.fit jpg1.jpg jpg2.jpg …
Please let me know if you have any issues. It’s quite possible that this is an hour off at the moment due to daylight savings time issues. Should be ironed out quite soon once I have a chance to do some more testing.
Update: I’ve added the ability to geotag using a csv file generated by the smartphone app mytracks. This is available for both the iphone and android operating systems (and possibly others, I don’t even know if there are others). The method is exactly the same. I find this easier, as often when I’m out taking photos I have my phone, but the gps thing, while small would be just one more thing to remember.
Update 2: If you send me an example trackfile and a photo taken during the trackfile, so long as the trackfile is in some sort of a text format, I should be able to add it to this utility. I see some visitors arriving with search terms of other sorts of devices than the mytracks (android or iphone) or garmin .fit.