如果您查看地图,精度半径开始变大,然后变得更小,因为它变得更加准确。但是,locationManager:didupdateLocations:在更改时不会再次调用。准确度提高时,是否有CoreLocation通知或委托方法?
在那个事件中是否有被调用的东西?
如果您查看地图,精度半径开始变大,然后变得更小,因为它变得更加准确。但是,locationManager:didupdateLocations:在更改时不会再次调用。准确度提高时,是否有CoreLocation通知或委托方法?
在那个事件中是否有被调用的东西?
我认为didUpdateLocations:
回调实际上会在更新精度时再次调用。根据这一Apple docs on Core Location:
除了位置对象的时间戳,您还可以使用 准确性由对象报告,以确定是否要接受 事件。由于它接收到更准确的数据,位置 服务可能会返回其他事件,准确度值 会相应地反映这些改进。抛弃不太准确的事件意味着您的应用浪费的时间更少,无论如何都无法有效地使用 。
您尝试过哪些测试来提高准确度?你在iPhone上试过了吗?你是否正确设置了代理和desiredAccuracy
属性?
如果您提供以下代码,您将获得非常频繁的位置更新。
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
但据苹果公司,建议在充电器插入到iOS设备,而位置管理是有效的。这是因为电池电量快速消耗,同时获得更多的位置更新。
有精度的其他水平CLLocationManager(CLLocationManager为kCLLocationAccuracyBestForNavigation,kCLLocationAccuracyBest,kCLLocationAccuracyKilometer,kCLLocationAccuracyHundredMeters等)
有什么被称为该事件?
不可以。您可以继续获得相同的回调,但每个位置的准确性(可能)会提高。 “精度提高”没有回调。
您在回调中收到的CLLocation
包含垂直和水平精度信息。