Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Significant Location Changes - What guarantees do we have?

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)?

like image 382
David Xu Avatar asked Sep 10 '14 23:09

David Xu


1 Answers

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:

  • There are approximately 10 location updates per day in average
  • The horizontal accuracy stated by CoreLocation has the distribution as shown in the table bellow
  • This does not guarantee however that once the user moves out from the circle defined by the last location update and its horizontal accuracy CoreLocation will send a new location event. In other words you can't be sure that the user is in this circle at any given moment.
  • If some other app uses the GPS on the device (during navigation for example), the location events arriving to my app were also much more accurate.

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.

Accuracy   Cumulative distribution
   10m        23.76%
   20m        23.76%
   50m        23.76%
  100m        49.86%
  200m        65.09%
  400m        65.31%
  500m        65.31%
 1000m        68.66%
 2000m        92.64%
 4000m        97.82%
>4000m       100.00%

So in other words, almost 2/3 part of the location updates were more accurate then 200m.

like image 51
MrTJ Avatar answered Oct 16 '22 08:10

MrTJ