【问题标题】:Is there a CoreLocation notification or delegate method when accuracy improves?当准确性提高时,是否有 CoreLocation 通知或委托方法?
【发布时间】:2015-01-14 16:09:23
【问题描述】:

如果您查看地图,精度半径开始变大,然后随着精度的提高而变小。但是 locationManager:didupdateLocations: 在更改时不会再次被调用。

该事件是否调用了某些东西?

【问题讨论】:

    标签: ios cocoa-touch core-location


    【解决方案1】:

    我相信didUpdateLocations: 回调实际上会在精度更新时再次被调用。据此Apple docs on Core Location

    除了位置对象的时间戳,您还可以使用 该对象报告的准确性以确定您是否要 接受一个事件。随着它接收到更准确的数据,该位置 服务可能会返回带有准确度值的附加事件 相应地反映改进。扔掉不太准确 事件意味着您的应用在无法使用的事件上浪费的时间更少 无论如何都有效。

    您尝试过哪些测试来提高准确性?你在 iPhone 上试过吗?您是否正确设置了委托和 desiredAccuracy 属性?

    【讨论】:

      【解决方案2】:

      如果您提供以下代码,您将获得非常频繁的位置更新。

      self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;

      但根据 Apple 的说法,建议在位置管理器处于活动状态时将充电器插入 iOS 设备。这是因为在获取如此多的位置更新时,电池电量会很快耗尽。

      CLLocationManager 还有其他精度级别(kCLLocationAccuracyBestForNavigation、kCLLocationAccuracyBest、kCLLocationAccuracyKilometer、kCLLocationAccuracyHundredMeters 等。)

      【讨论】:

        【解决方案3】:

        该事件是否调用了某些东西?

        没有。您继续获得相同的回调,但每个位置的准确性(可能)得到提高。 “精度提高”没有回调。

        您在回调中收到的CLLocations 包含垂直和水平精度信息。

        【讨论】:

          猜你喜欢
          • 2015-04-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-21
          • 2019-09-20
          • 1970-01-01
          相关资源
          最近更新 更多