1. A computer-implemented method, the method comprising: obtaining an image that depicts a group of buildings; identifying, within the image, a skyline that indicates where a sky meets the group of building; determining a representation of a shape of the skyline that is identified within the image; creating a database of building/urban profiles including, obtaining point cloud data that indicates heights of surfaces at different geographic locations; converting the obtained point cloud data to a corresponding 3D surface model, and creating a database of stored building/urban profiles viewed from multiple locations within the 3D surface model, determining that the representation of the shape of the skyline that is identified within the image matches a particular building/urban profile of the stored building/urban profiles contained within the database; and in response to determining that the representation of the shape of the skyline that is identified within the image matches a particular building/urban profile of the stored building/urban profiles contained within the database, determining a location from which the image was taken based on the particular building/urban profile.