You've gone out and taken dozens (hundreds?) of photos and now you want to show them to the world. So you upload them to Flickr or Picasa. All your EXIF data is preserved, so viewers of your photos can find out the specifics of the gear you used and the settings on your camera for that particular photo (like the shutter speed, aperture, ISO, etc).
I like to include location data in my photos for two reasons: first, I can maintain precise records of where each photo was taken. So if I'm not terribly satisfied with a particular photo and want to attempt it again, I can use the GPS data to see where exactly I took the photo. Second, viewers of my photos on Picasa or Google+ can see where my photos were taken if they'd like to try to shoot the same location.
For example, you might stumble across this photo. To find the EXIF and GPS data (in Google+), click ACTIONS, then PHOTO DETAILS. You can now toggle back and forth between seeing the location (if the photo includes GPS data) superimposed on a Google Map, and seeing the rest of the EXIF data.
Retaining all the EXIF data including geolocation information also helps to reduce the number of comments simply asking for that information. But unless your camera has GPS capabilities (mine doesn't), you need a reasonable workaround if you wish to include location data.
I'll tell you how I do it - the details may vary based on your computer operating system and your phone, but similar solutions exist for just about any platform - so if you don't use a Mac and an Android phone, think of this more as a blueprint than as step-by-step instructions.
I use a service called Instamapper, which works for iPhones, Androids, and Blackberries, that allows me to track the location of my cell phone using GPS data. It doesn't continuously track the data, and this was important for me - I turn tracking on and off whenever I please. The first thing you'll want to do is sign up on the website. After filling out a username, password, and email address, you'll receive an email with a verification link. Click it, and then register your phone with the service. (For detailed instructions click here) You will also have to go to the Android Market/App Store to download the mobile app.
When I head out to take photos, I start the app on my phone and allow it to collect GPS data on my location every 121 seconds. (By setting the software to collect my location every 121 seconds, the software will go to sleep between transmissions - this allows me to preserve my battery life. If you set the software to transmit your location more frequently than every 121 seconds, the software will continuously track your location and this will quickly kill your battery.) When I'm done, I open the app again and turn it off.
Then, when I get home, I log into Instamapper, click DEVICES, and then DATA.
Now, I'm given a table that includes the data from each time the phone transmitted my location data - it gives the distance and speed traveled between transmission points. Find the one that should be the beginning of your "track," click it, and choose "begin track here." Find the location that should be the end of your track, click it, and choose "end track here." On the left side of the browser window, click SAVE TRACK. In the new window, give your track a name and click CREATE. I name them using a location and a date, such as "downtown LA 9_21_11."
You're now shown the track superimposed on a Google Map. But you need to download the data and incorporate it into your photo files. So click TRACK MANAGER.
Find your track, and click EXPORT. Choose GPX, and click EXPORT. Save the resulting file to your harddrive, and name it accordingly.
Now, you've got your GPX file and your fully processed JPEGs, ready for upload to Picasa (or wherever). How do you pull the data from the GPX file and insert it into the EXIF data on the JPEGs? For this, I use a free app called GPSPhotoLinker. (This app is only for Macs; similar programs exist for other platforms - feel free to ask for or provide recommendations in the comments.)
After opening GPSPhotoLinker, click AUTO. GPSPhotoLinker works by matching the timestamp of your photo with the timestamp on the GPS transmission. You only have GPS data for your location every 121 seconds, though, so you need to tell the software how to average your location data for any photos taken between GPS transmissions. Set the settings as you see fit. I set mine to 100 meters or 500 seconds, using the time-weighted average point. On the top, click LOAD TRACKS, and load your GPX file. On the right, click LOAD PHOTOS, and load the photos you wish to geotag. Once all the files are loaded, click BATCH SAVE TO PHOTOS.
That's it! Your photos are now geotagged! Congratulations.
Feel free to leave any questions or recommendations for other solutions in the comments.