When leveraging the kCLLocationAccuracyHundredMeters constant, what location data is being used and where is that data stored when the OS pulls the data? The “last known location” used to be stored in cache.plist, but since iOS 4.2.8 that is no longer the case.
I am trying to gain a better understanding of how applications determine a device’s location. The Core Location Framework allows calls for location-related data but hides the gritty details behind the API.
It’s not the apps that determine device location but the device. (hardware and software) The device in turn has the ability to inform the app about the device location via the Core Location API. Location is not tracked automatically, but you can ask the device to track it (again through the API).
The rationale behind constants like kCLLocationAccuracyHundredMeters is that an increasing localization accuracy costs increasing amounts of computation power. There is no point in investing in finding your position with an accuracy of 10 meters if all what you need is 100 meters.
Internally, there are two sources of data that are used to locate the device: 1. A GPS chip built into the device which is capable of receiving signals from GPS satellites surrounding the earth, which send timing information. As the signals arrive at different times because their distance to the device is differen and the speed of light is finite, the position can be calculated. 2. A database of visible SSIDs with their respective positions is used from which the proximity to their respective position is known.
That said, for you as an app developer it should be largely irrelevant how the respective data is stored internally in the device. All you need to know is the API.