确定具有接近pinoint准确度iOS的用户位置

时间:2017-02-04 19:36:03

标签: ios swift cocoapods core-location cllocationmanager

我的应用程序非常依赖于用户位置,因此准确性对于应用程序的使用至关重要。在与我的团队交谈时,我们已经意识到如果用户与我们创建的另一个地理围栏非常接近,CoreLocation可能无法识别差异。目前是否有任何框架可以更好地适用于iOS中的CL或LocationManager。我检查了Cocoapods库,但它们在功能上看起来都非常接近。

3 个答案:

答案 0 :(得分:2)

您无法克服GPS系统的物理和技术限制。如果在位置管理器配置了requestLocation所需的最高级别(即desiredAccuracy)时调用CLLocationManager的kCLLocationAccuracyBestForNavigationlocationManager(_:didUpdateLocations:)中的响应就像准确一样要得到。使用“库”不会改变它。

答案 1 :(得分:0)

您可以将精确度设置为kCLLocationAccuracyBestForNavigation,然后您将获得可用的最佳数据。如果您对iOS处理地理围栏感到不满意,您可以尝试通过订阅委托方法自己实现地理围栏。

这样你也可以低精度过滤CLLocations并忽略它们。

答案 2 :(得分:0)

正如其他人所说的那样,没有任何灵丹妙药比GPS能够提供更好的准确性。

你能做的是

  1. 将desiredAccuracy设置为最大值
  2. 检查从位置更新中获得的准确度值,并以水平"准确度拒绝读数。价值太大(因为"准确度"阅读实际上是"混乱圈"或者手机实际可能位于米的半径。
  3. 请注意,第2步可能会导致需要很长时间才能获得可接受的位置修复,或者您可能根本无法获得可接受的读数。基于几年前的测试,要求水平精度读数为16米是我能够达到的最佳水平,而且我只能在没有建筑物且没有大量树木覆盖的开放区域内获得信号质量。 (然而,我并没有在开阔的草原上尝试过它。)