Filters short strokes. Therefore, if the CL detects that the device has moved 20 meters, but your remote filter is set to 30 meters, you will not be notified. Once the position has moved enough to exceed the distance filter setting, you will receive a didUpdateToLocation callback.
Very often for GPS position results it is very common to wander, even when the device is not moving. You can stand still, but if the position accuracy is +/- 10 meters, the declared position can vary up to 20 m, even if the device did not move. Using distanceFilter allows you to filter out such external movement.
If you want to know more, take a look at my implementation of distanceFilter in the CLLocationManager-simulator , just below the "Apply distanceFilter" comment.
source share