The Microsoft Photo Placement Tool can be used to find the geographic coordinates of the camera that took a photo. In this way a photo can be geolocated in the 3D world. There are seven parameters which need to be determined to geoposition a photo in the 3D world. Six of them are latitude, longitude, altitude, roll, pitch, yaw which define the position and orientation of the camera. The seventh parameter is the focal length of the camera that took the photo. The Photo Placement Tool allows determination of these seven parameters via manually specified correspondences between points in the photo and 3D world.
I love this concept, but the only examples they show are for oblique aerial photographs. I wonder how it works for photos taken on the ground. Plus you need to be in an area where there is good 3D detail in the form of models or terrain. If anyone checks it out, let us all know how it goes.