当准确性提高时,是不是有 CoreLocation 通知或委托方法?
Posted
技术标签:
【中文标题】当准确性提高时,是不是有 CoreLocation 通知或委托方法?【英文标题】:Is there a CoreLocation notification or delegate method when accuracy improves?当准确性提高时,是否有 CoreLocation 通知或委托方法? 【发布时间】:2015-01-14 16:09:23 【问题描述】:如果您查看地图,精度半径开始变大,然后随着精度的提高而变小。但是 locationManager:didupdateLocations: 在更改时不会再次被调用。
该事件是否调用了某些东西?
【问题讨论】:
【参考方案1】:我相信didUpdateLocations:
回调实际上会在精度更新时再次被调用。据此Apple docs on Core Location:
除了位置对象的时间戳,您还可以使用 该对象报告的准确性以确定您是否要 接受一个事件。随着它接收到更准确的数据,该位置 服务可能会返回带有准确度值的附加事件 相应地反映改进。扔掉不太准确 事件意味着您的应用在无法使用的事件上浪费的时间更少 无论如何都有效。
您尝试过哪些测试来提高准确性?你在 iPhone 上试过吗?您是否正确设置了委托和 desiredAccuracy
属性?
【讨论】:
【参考方案2】:如果您提供以下代码,您将获得非常频繁的位置更新。
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
但根据 Apple 的说法,建议在位置管理器处于活动状态时将充电器插入 ios 设备。这是因为在获取如此多的位置更新时,电池电量会很快耗尽。
CLLocationManager 还有其他精度级别(kCLLocationAccuracyBestForNavigation、kCLLocationAccuracyBest、kCLLocationAccuracyKilometer、kCLLocationAccuracyHundredMeters 等。)
【讨论】:
【参考方案3】:该事件是否调用了某些东西?
没有。您继续获得相同的回调,但每个位置的准确性(可能)得到提高。 “精度提高”没有回调。
您在回调中收到的CLLocation
s 包含垂直和水平精度信息。
【讨论】:
以上是关于当准确性提高时,是不是有 CoreLocation 通知或委托方法?的主要内容,如果未能解决你的问题,请参考以下文章