If you have a Canon 5D Mark II, and looking to geotag your photos, here’s a solution cheaper than the official Canon accessory — it happens to be a Canon compact camera.
Every place has its memories, and every memory its place. Having information about places embedded in photos and videos serves to link the two. We’re in an age where capturing every bit of metadata is certain to lead to interesting applications in the future. I’ve been geotagging my photos since 2006 or so using a Garmin eTrex series GPS logger. These days, many cameras have built-in GPS hardware and loggers which make the job trivial — just turn the option on. But not many SLRs have them yet. Canon sells a kit for the 5D Mark II which is insanely expensive. (US$699 retail — crazy, right?)
My solution: I recently bought a Canon PowerShot D20, which is an awesome camera in its own right. It has a GPS logger that can be turned on and left on even when the (rest of the) camera is off. And its effect on battery life is minimal enough that I could get about two–three days’ worth of photos & logs on a single charge. Of course, you could use any
Next, I used GPS Visualizer’s Convert to GPX tool to convert from Canon’s GPS log format to GPX, a fairly standard format. I tried GPSBabel, but I couldn’t find the right format to pick as the input format (despite a lot of Googling), so it never worked for me.
After that, I used GPSPhotoLinker, a great tool for Mac OS X, that reads tracks and waypoints in GPX format, and embeds that info into a set of photos as EXIF tags.