a computer - implemented method for determining an estimated user location , implemented in a computing system programmed to perform the method includes receiving a map database associated with a geographic location including a plurality of map features , determining an estimated first user location within the geographic location , receiving a first plurality of physical perturbations from a plurality of physical sensors in response to physical perturbations of the computing system , determining an estimated second user location within the geographic location in response to the estimated first user location and to the first plurality of physical perturbations , determining a modified estimated second user location in response to the estimated second user location and to at least one map feature from the plurality of map features , and providing in the computer system , an indication of the modified estimated second user location with regards to the geographic location .