This is a fairly long post, so just delete it if you're not interested in tagging photos with where they were taken.
After a bit of digging, I have found a kind of solution to geo- referencing photos that were taken using a camera without a built-in GPS receiver. The solution is Mac-specific but the result isn't, so I hope people don't feel it's too far off-topic for them.
Although my primary platform these days is a Mac, I feel more future- proofed if I don't rely on saving lots of information in Mac-specific applications such as iPhoto. Fortunately, it's possible to encode latitude and longitude into a JPEG, so a solution that does that will build-in the platform independence and future-proofing I desire. It doesn't work for the various raw image formats but that's less of a problem for me as I can easily find the raw image that corresponds a JPEG.
It appears that those nice googley people have provided an API to Google Earth that allows one to extract the lat/long of the place where you're looking. A guy in New Zealand has used this to write a Mac app called Geotagger, and the workflow with it is:
-- centre google earth over the place you took the photo
-- drag and drop <shudder> the photos you took at that location onto Geotagger
This is a darn sight faster than reading the location off a map and converting OS grid references to GPS lat/long, not a trivial task...and has the advantage that it works for all my holiday snaps too. Of course, it's not necessarily all that accurate -- but nor is GPS. And it's reasonably fast to do when you've got to grips with Google Earth.
Having done this with a few photos and transferred them onto a Linux box, I can then pull out locations with jhead:
jhead 2000-02-15-001.jpeg
File name : /home/alien/home/pix/ 2000/2000-02-15/2000-02-15-001.jpeg File size : 101253 bytes File date : 2009:06:16 19:14:13 Resolution : 768 x 1024 GPS Latitude : N 51d 30m 10.807s GPS Longitude: E 0d 0m 10.5012s
(The place is the Millennium Dome, if you're curious.)
If I import these photos into iPhoto on a Mac, it handles the geo-tag correctly, linking the photos to the right place on its map. Moreover, with this information stored in the image files, it'll be fairly easy to roll something on Linux that extracts the information and presents it via google maps.
..Adrian