1. A computer-implemented method, comprising: storing a position in memory; receiving sensor data related to movement of a device; detecting a turn in the movement of the device based on the received sensor data; comparing the sensor data to map data corresponding to the stored position; identifying a candidate location defined by the map data based on an estimated current device location and the detected turn, where identifying the candidate location comprises identifying that the candidate location defined by the map data has characteristics consistent with characteristics of the detected turn; determining the estimated current device location, the determination being based at least in part on the stored position, the received sensor data, and an interpretation of the received sensor data as corresponding to movement along at least one pathway defined by the map data; prompting the user for confirmation that the estimated current device location corresponds to an actual physical location of the device; and updating the position stored in memory with the estimated current device location when the user confirms that the estimated current device location corresponds to the actual physical location of the device.