1. A computer-implemented method for applying photo texturing to a 3D model of a real-world object, the method comprising: receiving a user request, with one or more computing devices, to view a geolocated 3D model from a particular viewing position, the particular viewing position being associated with a 3D program space; comparing, with the one or more computing devices, a 3D location of a surface of the geolocated 3D model to one or more locations of a plurality of geolocated images to select one geolocated image of the plurality of geolocated images to use to apply an image texture to the surface of the geolocated 3D model, wherein comparing further comprises: determining a likely viewing point associated with the particular viewing position associated with the user request, the likely viewing point comprising a set of geolocated coordinates specifying an estimate of the particular viewing position the likely viewing point being determined by determining a first point at a fixed distance along the normal of the surface from a point on the surface; determining one or more geolocated images of the plurality of geolocated images captured from a position proximate the likely viewing point; and determining which of the one or more geolocated images of the plurality of geolocated images was captured from an angle closest to an angle between the likely viewing point and the surface; selecting, with the one or more computing devices, an image of the plurality of geolocated images based at least in part on the comparison; selecting, with the one or more computing devices, an area of the selected image to apply to the surface; applying, with the one or more computing devices, the selected area of the selected image to the surface; and providing for display, with the one or more computing devices, the surface applied with the selected area of the selected image.