I'm currently writing a Mobile iOS app that is using the iOS Significant Location Change service to manage lots and lots of geofences, enabling and disabling geofences as we receive this message from the CoreLocation Framework.
On the Apple Developer Website it says:
The significant-change location service delivers updates only when there has been a significant change in the device’s location, such as 500 meters or more.
What really throws me off is "500 meters or more", what exactly is the significant location change service based on and what guarantees do we actually have?
Is this API reliable for tracking changes between regions so that when we receive the message we know it's time to redistribute our geofences (assuming we have less than 20 geofences per 500 meter radius)?
I made an experiment running a small app using significant location change API for two weeks on 10 real-user devices (so they were traveling to work, going home, going out in the weekend, etc.) The test run in a metropolitan environment (Milan, Italy). There were approximately 1800 significant location update events registered.
The core results are:
The distribution table should be read as follows: the first column is the horizontal accuracy in meters, the second column is that how many % of the location updates were equal or more accurate then the first column.
So in other words, almost 2/3 part of the location updates were more accurate then 200m.
500 meters is .31 miles - about a 3rd of a mile. They don't specify how exact it is, but based on tests while using GPS and the core location framework, it's very accurate (it should be tracking distance foot by foot even if startupdatinglocation method is not called in code).