CLLocationManager不是非常准确的初始更新

时间:2013-02-11 08:22:31

标签: ios cllocationmanager

这在CLLocationManager类引用中声明:

  
    

在请求高精度位置数据时,位置服务提供的初始事件可能无法满足您的要求。

  

这真的影响了我的应用。如何确保找到的位置具有正确的准确度?

我尝试使用第4或第5次更新而不是第一次检索位置,但这不是一个好的解决方案。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您应该检查更新的准确性,CLLocation 包含一个属性horizontalAccuracy,您可以使用该属性来检查准确性。 当CLLocation具有您发现足够准确的准确度时,您可以使用并忽略其他人。

你应该通过电话CLLocationManager获得所需的准确度。为此,请在desiredAccuracy中设置CLLocationManager属性。

答案 1 :(得分:1)

我认为你将不得不忍受这一点。这就是Apple实施它的方式。获得精细的位置需要时间,只需考虑汽车中安装挡风玻璃的GPS设备修复其位置需要多长时间。

因此,基于附近的手机信号塔和WiFi热点,他们不会让您的应用程序等待更长时间,而是提供几乎可以立即获得的准确度。只有当GPS定位更加可靠时,他们才会再次呼叫您的应用并通知您。

最后,这只是一个等待细粒度位置的问题:在你的应用程序中,你有机会使用更粗粒度的数据做一些事情,或者在他们的框架,在此期间应用程序没有机会做任何有用的事情。我认为,让你决定是更好的选择。

根据应用程序的类型,您可以拥有一个地图,一旦更好的位置数据进入就会自动放大,在您期望的位置周围绘制一个较小的圆圈等。对于最终用户,没有什么比等待更糟糕了没有得到任何反馈。所以尽管这可能不是你想要的答案,但我建议从用户的角度充分利用它。