CLLocationManager 确保 iphone 的最佳准确性

Posted

技术标签:

【中文标题】CLLocationManager 确保 iphone 的最佳准确性【英文标题】:CLLocationManager ensure best accuracy for iphone 【发布时间】:2009-08-14 13:59:28 【问题描述】:

有人对如何在位置管理器上获得最佳水平精度有任何建议吗?我已将所需的精度设置为 NearestTenMeters,但鉴于精度始终会根据覆盖区域而变化,我如何在 locationManager 中编写一些代码以仅在获得最佳水平精度后才停止更新?

【问题讨论】:

【参考方案1】:

如果你想让它达到一定的精度,设置委托方法

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

拥有

if(newLocation.horizontalAccuracy <= (some number) )
    [locationManager stopUpdatingLocation];

类似的东西。

【讨论】:

【参考方案2】:

通常情况下,硬件开启的时间越长,获得的位置越多,获得的准确度就越高。您可以尝试尽早打开管理器以使其准确,然后获取位置。当目标移动时,它也有帮助,当 gps 移动时,芯片能够获得更准确的读数。此外,设备的位置也会有所不同,如果您在野外,您将获得比在掩体中更好的读数,因此有时您获得的读数是可用的最佳读数。您的代码可以等待一段时间,直到它不再从位置管理器获得更新,然后它可能处于最佳准确性。

【讨论】:

以上是关于CLLocationManager 确保 iphone 的最佳准确性的主要内容,如果未能解决你的问题,请参考以下文章

CLLocationManager - 地址坐标

为啥'CLLocationManager.locationServicesEnabled()'默认为真?

Xcode 6 GM - CLLocationManager

CLLocationManager 和 CLGeoCoder

CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons

CLLocationManager 最后一个已知位置