I've been geocoding photos for a while and it's finally taking off in the mainstream. I have a few sets of photos that I've geocoded and show on maps. For example, the McGuffin Game (which shows thumbnails on a Google map) and biking to Santa Cruz (which I did offline onto static images, before there were any open mapping APIs). Other people have much slicker display systems, but for getting the coordinates into the images, the state of the art hasn't changed much.
My setup for showing the thumbnails on a map is still pretty clunky, but just sticking coordinates into a JPEG and using that to link to a map is much easier. Here's where I explain how I do it and give you tools to help you do it.
The basic idea is simple. I have a GPS periodically record my position and the time, and I take pictures using a digital camera, which puts a timestamp in the image file metadata. Later, on my computer, I correlate the two using the timestamps and figure out where I was at the time I took the picture. Then I use the Google Maps API to present it in a nice way.
I use gpsbabel to get the tracklog from the GPS and store it in GPX format.
If you took a picture of your GPS showing the time, you can compare the time shown in the photo to the timestamp embedded in the EXIF data to see how far off your camera's clock is. Then you can adjust all the photo timestamps so they match the GPS' clock. For example, this command would adjust the timestamps on a bunch of images forward by 1 hour 2 minutes and 3 seconds:
exiv2 -a 01:02:03 ad *.jpg
I now have wonderful scripts that geocode the photos and store the location data in the EXIF chunks of the JPEG files.