【问题标题】:Core Location Accuracy Indoor核心定位精度室内
【发布时间】:2017-09-19 15:24:12
【问题描述】:

.desiredAccuracy 属性设置为kCLLocationAccuracyBest 的情况下,CLLocationManager 室内返回的坐标有多准确?

误差范围是多少? 5到10米之间?我至少能知道我在哪个房间吗?

【问题讨论】:

    标签: ios gps core-location


    【解决方案1】:

    原始答案 - Location manager accuracy not very accurate

    位置管理器可能会向您发送一些更新,因为它可以提高其准确性。此功能旨在尽快为您提供信息,同时最终为您提供最佳信息(至少达到您要求的准确性)。您正在积极避免这些更新,因此您获得的信息可能最不准确。

    您应该检查 Horizo​​ntalAccuracy 以确定它是否足够准确以供您使用。

    请注意,您不能将 Horizo​​ntalAccuracy 与 kCLLocationAccuracyBest 进行比较。 “最佳”是一个常数 -1。您需要将其与您需要的值(以米为单位)进行比较,如果到达那里需要太长时间,您可能会设置一个超时来放弃(系统可能无法为您提供任意准确的值。)

    所需准确性的文档。 https://developer.apple.com/documentation/corelocation/cllocationmanager/1423836-desiredaccuracy

    在请求高精度位置数据时,位置服务提供的初始事件可能没有您请求的精度。定位服务尽快提供初始事件。然后,它会继续以您请求的准确性确定位置,并在数据可用时根据需要提供其他事件。 对于 iOS 和 macOS,此属性的默认值为 kCLLocationAccuracyBest。对于 watchOS,默认值为 kCLLocationAccuracyHundredMeters。 此属性仅与标准位置服务结合使用,在监视重大位置变化时不使用。

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      来自CLLocationManager的标头:

      用于表示以米为单位的位置准确度级别的类型。以米为单位的值越低,位置的物理精度越高。负精度值表示位置无效。

      Apple 并未在其文档中的任何地方指定 CLLocationAccuracyBest 实际代表的内容,可能是因为我们无法保证该级别的准确性。充其量,CoreLocation 可以让您下降几米,但很多时候——尤其是在室内——你不会得到那种可靠的读数。

      对于逐个房间的室内测距,使用iBeacons with CoreLocation 可能会获得更可靠的结果。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多