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.locationServicesEnabled()'默认为真?
Xcode 6 GM - CLLocationManager
CLLocationManager 和 CLGeoCoder
CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons