1. A computer-implemented method, comprising: receiving location data and device access point data for a device, the location data indicating an estimate of a current location of the device at a time and the device access point data identifying one or more wireless access points visible to the device at the time; based on the estimated current location of the device, identifying a plurality of candidate map locations, each candidate map location being on a road and associated with road access point data identifying one or more wireless access points visible at the candidate map location; determining a corrected map location from the plurality of candidate map locations as being a most likely location of the device based at least in part on a respective correspondence between the device access point data and the road access point data for each candidate map location; and correcting the estimated current location of the device at the time by using the corrected map location as the current location of the device.