Currently there are a lot of cameras with GPS units, integrated or as an option. But that covers only a handful of models.
There are also units designed to work standalone, but usually are standalone units, with less battery than the cameras, and quite expensive just for geotagging our photos.
So the easiest and cheapest way, is to transfer the geotagging (GPS) data from a photo taken with our smartphone, to the photos taken with our camera.
For this, we can use the excellent exiftool utility.
This tool is available in all platforms. For Linux we can use our distribution package manager to install it, for Macintosh I recommend using MacPorts (or downloading it from the official site) and for Windows we can download it from the site.
exiftool is a really complete tool to manage and modify the EXIF information (that one that contains the camera manufacturer, model, lenses used, GPS information, so on) of the photos, with an extensive set of options. It does not have a graphic interface so using it on command line is a must (Terminal or Command Prompt).
We simply take one photo, does not need to be the greatest one, or useful at all, on every place we are, with the smartphone, and take note (mentally or physically) of what photos of the camera correspond to that place. There is not a need to take a photo with the smartphone if we move only a couple of meters, like for example inside the same building or square. If we need that exactitude, this is not the solution we want.
Once we arrive home or the hotel, we copy the camera photos and the smartphone photos to the same folder (I recommend using a folder per place), and then in the command line we run exiftool inside that folder with the following arguments:
exiftool -tagsfromfile IMG_0774.JPG -gps:all -P DSC*_
IMG_0774.JPG is the photo taken with the smartphone, and
DSC* represents all files whose name starts with DSC. Usually all cameras store the photo files named something like
DSC00001.JPG, in case your camera uses a different scheme just change DSC to the appropriate thing.
This command will copy ONLY the GPS data from the smartphone photo, leaving all the data in the camera photos (as well as the date it was taken) untouched. It will also create a copy of the original photo with
_original suffixed (
DSC00001.JPG copies to
Once you checked the photos are ok (just for security) you can delete the smartphone and _original files.
When you put your photos on your favourite organizer (Picasa, Flickr, Lightroom, iPhoto, Aperture) you'll see that all your camera photos now have the correct location (the same one you where on when you took the photo with the smartphone) automatically.
This is not as exact as other solutions, but it's free, fast and automatic.