1. A method comprising: receiving a pseudo-range measurement of a global positioning system satellite (GPS); receiving, when the pseudo-range measurement of the GPS is inaccurate, distance data from a range finding sensor, wherein the distance data corresponds to a first current distance to a first point from a mobile device and a second current distance to a second point from the mobile device; accessing a predetermined building model to receive location data for the first point and the second point, wherein accessing the predetermined building model comprises selecting the predetermined model based on a previous location of the mobile device determined using the GPS; calculating a current position of the mobile device based on the pseudo-range measurement of the GPS satellite, the location data, the first current distance to the first point and the second current distance to the second point using a simultaneous solution of a plurality of equations including at least one equation for the first current distance, at least one equation for the second current distance, and at least one equation for the pseudo-range measurement; and displaying a route based on the current position of the mobile device, wherein the first point and the second point are derived from densities of point cloud data in point clouds, the point cloud data received from the range finding sensor.