iphone core location: distance filter how does it work?

Christoph v picture Christoph v · Jul 27, 2010 · Viewed 9.2k times · Source

What exactly the property locationmanager.distancefilter do? Does it determine how often the didUpdateTolocation method gets called??

Answer

progrmr picture progrmr · Jul 27, 2010

It filters out short moves. So if CL detects that the device moved 20 meters, but your distance filter is set to 30m you will not be notified. Once the position has moved enough to exceed your distance filter setting then you will get a didUpdateToLocation callback.

It is very common for GPS position results to wander even when a device isn't moving. You can be standing still but if the position accuracy is +/- 10 meters, the reported position can change up to 20m even though the device didn't move. Using distanceFilter allows you to filter out that kind of extraneous motion.

If you want to know more, take a look at my implementation of distanceFilter in my CLLocationManager-simulator, just below the comment "Apply distanceFilter".