核心定位精度室内
Posted
技术标签:
【中文标题】核心定位精度室内【英文标题】:Core Location Accuracy Indoor 【发布时间】:2017-09-19 15:24:12 【问题描述】:在.desiredAccuracy
属性设置为kCLLocationAccuracyBest
的情况下,CLLocationManager
室内返回的坐标有多准确?
误差范围是多少? 5到10米之间?我至少能知道我在哪个房间吗?
【问题讨论】:
【参考方案1】:原始答案 - Location manager accuracy not very accurate
位置管理器可能会向您发送一些更新,因为它可以提高其准确性。此功能旨在尽快为您提供信息,同时最终为您提供最佳信息(至少达到您要求的准确性)。您正在积极避免这些更新,因此您获得的信息可能最不准确。
您应该检查 HorizontalAccuracy 以确定它是否足够准确以供您使用。
请注意,您不能将 HorizontalAccuracy 与 kCLLocationAccuracyBest 进行比较。 “最佳”是一个常数 -1。您需要将其与您需要的值(以米为单位)进行比较,如果到达那里需要太长时间,您可能会设置一个超时来放弃(系统可能无法为您提供任意准确的值。)
所需准确性的文档。 https://developer.apple.com/documentation/corelocation/cllocationmanager/1423836-desiredaccuracy
在请求高精度位置数据时,位置服务提供的初始事件可能没有您请求的精度。定位服务尽快提供初始事件。然后,它会继续以您请求的准确性确定位置,并在数据可用时根据需要提供其他事件。 对于 ios 和 macOS,此属性的默认值为 kCLLocationAccuracyBest。对于 watchOS,默认值为 kCLLocationAccuracyHundredMeters。 此属性仅与标准位置服务结合使用,在监视重大位置变化时不使用。
希望对你有帮助
【讨论】:
【参考方案2】:来自CLLocationManager
的标头:
用于表示以米为单位的位置准确度级别的类型。以米为单位的值越低,位置的物理精度越高。负精度值表示位置无效。
Apple 并未在其文档中的任何地方指定 CLLocationAccuracyBest
实际代表的内容,可能是因为我们无法保证该级别的准确性。充其量,CoreLocation 可以让您下降几米,但很多时候——尤其是在室内——你不会得到那种可靠的读数。
对于逐个房间的室内测距,使用iBeacons with CoreLocation 可能会获得更可靠的结果。
【讨论】:
以上是关于核心定位精度室内的主要内容,如果未能解决你的问题,请参考以下文章