CLLocationManager更新频率

Sah*_*nna 1 iphone core-location cllocationmanager ios4

我已经按如下方式配置了locationManager.

_locationManager = [[CLLocationManager alloc] init];
[_locationManager setDelegate:self];
[_locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
[_locationManager setDistanceFilter:kCLDistanceFilterNone];
Run Code Online (Sandbox Code Playgroud)

当应用程序运行时,我从委托方法获得一些更新.当我不改变位置,并且移动设备静止约2小时后,我在前10分钟内收到大约10-12个更新,然后停止接收更新.

我所理解的是,理想的准确度是设备将继续尝试越来越精确的方法来获取当前位置的时间.所以在我的情况下,需要大约10分钟才能获得所需的精度.

我想确认这是否属实.还有一种方法可以让我获得定期的位置更新,即使设备没有移动?

dea*_*rne 5

如果位置未更改,您为什么期望更新位置?

如果您想定期刷新结果,请使用NSTimer自己创建的.


当设备获得具有误差幅度<desiredAccuracy的位置时,它将停止要求更准确的结果.如果设备移动,那么它将再次开始询问,直到它再次获得所需精度的位置.

如果你指定10米的准确度,那么你几乎肯定会依赖GPS - 手机信号塔和wifi通常不那么准确.

为了确定设备是否已移动,它使用距离过滤器 - 通过将此设置为无,您要求它始终精确到最近的10米 - 这可能会耗尽电池;)