Tuesday, August 11, 2009

Adventures in Geotagging

I have a GPS that records where I've been at what times. I have a camera that takes pictures with timestamps. It seems logical that I should be able to plug both into my computer and - as my host at a B&B in France was so fond of saying - voila! - I should be able to have a map of my route with photos on it, no?

Or at least, I should be able to quickly embed the latitude and longitude (location on the planet) of each photo into its EXIF data, right?





I knew that there was software out there to do such things. I didn't expect that it would take several after-midnight hours of banging my head against my desk to achieve the desired results.


So here I blog, to hopefully save some other likeminded souls from similar agony.



Long story short, here is what I did that actually did work:

  1. Download your photos from your camera to your computer. (I'm assuming you already know how to do this.)

  2. Download your tracks from your GPS to your computer. I used Garmin's MapSource software to do this. I have this software installed because I normally use it to upload topo maps to my GPS. It's also pretty decent at managing waypoints, routes, and tracks.

  3. Delete any data from this file that you don't want displayed on your map that you want to share. For example, we drove between two trailheads in my recent 5-day trip; since I only wanted to show our hiking/scrambling route and not our driving route, I deleted these extra tracks, as well as some old tracks that were still on my GPS.

  4. Save the file as a *.gdb file. For some reason, MapSource v 6.15.4 (what I have installed currently) crashes if you try to export as a .gpx file (one of the few standards out there).

  5. Use GPSBabel, a free utility, to convert this .gdb file to a .gpx file.

  6. Use Microsoft Pro Photo Tools (ironically, I had never heard of this application while I was working at Microsoft!) to geotag your photos. The UI isn't completely intuitive, but the two buttons you'll need to find are "Track Route: Load from File" and Track Route: "Place Images". You should see a route after loading the .gpx file and you should see pushpins representing each photo on the map after clicking "Place Images". Note also that you need to "Save All Images with new data" after these first two steps to store the latitude and longitude information in the EXIF data for each photo.

  7. Import these photos into Picasa (I'm using v. 3) and upload. Note that using the online web tool to upload photos to Picasa will strip out the latitude and longitude information that's embedded in each photo, so you must use the desktop application for uploading. Note also that Flickr will ignore this EXIF data, which is why I finally tried using Picasa.

  8. View your newly-created Picasa album online and click on "View map". Then click on "View in Google Earth". Note that it's also possible to view these photos in Google Earth directly from the Picasa desktop app, but the results are better if you go the online route.

  9. Now that you're in Google Earth, you can import your .gpx track that you created in Step 5. And - voila! - you've got your pictures in their appropriate locations around the globe, and your route there, too!
  10. Try out the coolest part of the whole thing: flying from photo location to photo location. The terrain appears to be 3-dimensional during the fly-by!

Long story short: I expected that this would be a simple process, but it still has too many gotchas and pitfalls along the way for the average consumer to handle. One of these days I expect it will be easy enough, but until then, it will take a bit of work! Note that I had to use a total of five software applications* to achieve my goal, and I'm still not completely happy.

My main issues that I'd like to resolve (or see resolved by the appropriate parties)

  1. I'd like to continue to use Flickr. I'm already paying for an account there; I'd rather not pay to use Picasa. Flickr allows unlimited uploads for $25; Picasa can get very expensive (on the order of hundreds of dollars per year) if you upload thousands of photos like I do. However, Flickr ignores the GPSLatitude and GPSLongitude EXIF data. I have already started working on the problem in the tool that I'm working on (Flickr2KML), but I'm not sure if I'll be able to fix it easily or not.
  2. I wish MapSource didn't crash.
  3. I can import a .KML file from Google Earth to Google Maps, but Google Maps won't display all of the photos for a set at once; it only displays about 20 items at a time. I don't want to force people to use Google Earth, though... I want them to be able to click on a link and see everything in their browser, without installing yet another application to their machine.
  4. I'd like the photo thumbnails in Google Earth to appear larger when a user zooms in on an area. Currently the user has to click on a photo to make it more than, say, 30 pixels across. At least it is possible to click on each thumbnail to make it bigger.
  5. The "Play tour" feature in Google Earth is very very very cool, but not very smart. It seems like each photo should get bigger when the tour is visiting it. Or the tour should just make one stop for each group of photos taken at a particular location.

Happy geotagging, folks! Have fun with it!

* Note that it's possible to skip steps 2, 3, 4, and 5 and import tracks directly from a GPS unit into Google Earth, but I wasn't able to figure out a way to geotag photos without a .gpx file.

1 comment:

  1. Susan, Thank you for posting your success story. I started the same path, but fortunately found your posting before I'd gotten too confused. I already had the geotag data embedded in the images. So, I downloaded Picasa to my desktop, then uploaded them to the web Picasa. They showed up easily on the Google map, but the Google Earth option of viewing did not work - lots of squirrely code instead of launching GE. I don't know if this is the solution for me, but gosh darn, it sure looks really close! Thank you again for taking the effort to share your results. Alyson

    ReplyDelete