【问题标题】:Will iPhone location accuracy go beyond the call of duty?iPhone 定位精度会超出职责范围吗?
【发布时间】:2011-09-21 08:47:49
【问题描述】:

如果我将 CLLocationManager 的所需精度设置为 kCLLocationAccuracyKilometer(精确到一公里),iPhone 最终会在获得位置时提供更好的位置吗?或者它会以我想要的精度停止。我在文档中找不到这个。

我的想法是我需要快速修复该位置,但我想更准确。我必须自己编写代码,还是自动为我编写代码?

【问题讨论】:

    标签: iphone objective-c ios core-location


    【解决方案1】:

    我不知道以下内容是否 100% 正确,但我很确定它的工作原理是这样的:精度过滤器主要是为了节省能源而设计的。因此,如果您指定kCLLocationAccuracyKilometer 对您来说就足够了,并且操作系统非常确定它可以仅使用三角测量在 1 公里内准确定位您,它甚至不会启动耗电的 GPS 单元。因此,关于您的第一个问题,位置管理器将在达到您期望的准确度后立即停止。

    关于第二个问题:我认为准确性过滤器对您收到第一次位置更新的时间没有任何影响。操作系统通常会缓存您最后一个已知位置,即使您指定了非常高的准确度,也会几乎立即提供该位置。后续位置更新会越来越精确。

    如果这确实是真实的行为,您应该能够轻松地自行测试。

    【讨论】:

    • 我知道缓存的位置,但我需要一些新的位置,所以我丢弃任何超过 1 分钟的位置...
    【解决方案2】:

    设置您需要的最佳准确度(但不会更多,因为定位服务消耗太多电量)。每次提高准确性时,LocationManager 都会调用 CLLocationManagerDelegate 的 didUpdateToLocation。尽快停止更新位置,以免电池耗尽。

    【讨论】:

      【解决方案3】:

      不,它将以指定的精度停止。如果您只请求kCLLocationAccuracyKilometer,那么 GPS 接收器将不会开机,并且不会比 WiFi 或蜂窝塔三角测量更好。 [唯一的例外是,如果后台的另一个应用程序(如 TomTom 导航)已经开启 GPS 以进行高精度修复,那么您也可能获得高精度(

      如果您想要更好,您必须请求它,您不妨立即请求它,您将立即获得快速定位(1000m 精度)定位,并在一两分钟内获得高精度 GPS 定位(嗯,这可能需要 30 秒到 10 分钟,具体取决于几件事)。无需特殊编码,只需指定您最终想要的精度即可。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-15
        相关资源
        最近更新 更多