问题
What exactly the property locationmanager.distancefilter
do? Does it determine how often the didUpdateTolocation
method gets called??
回答1:
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".
来源:https://stackoverflow.com/questions/3342558/iphone-core-location-distance-filter-how-does-it-work