CLLocationManager室内返回的坐标与.desiredAccuracy属性设置为kCLLocationAccuracyBest的精度
误差范围是多少?在5到10米之间?我至少能找出我住在哪个房间吗?
发布于 2017-09-19 15:39:18
原始答案- 位置管理器精度不太准确
位置管理器可能会向您发送几个更新,因为它提高了其准确性。这是一个功能,旨在为您提供信息,尽快,同时最终得到最好的信息给您(至少达到您所要求的准确性)。您正在积极地避免那些更新,因此您可能会得到最不准确的信息。
您应该检查horizontalAccuracy,以确定它是否足够准确供您使用。
请注意,您不能将horizontalAccuracy与kCLLocationAccuracyBest进行比较。“最佳”是一个常数-1。您需要将其与所需的(以米为单位)进行比较,如果需要太长时间才能到达那里(系统可能无法为您提供任意精确的值),则可能设置一个超时以放弃。
要求准确的文件。https://developer.apple.com/documentation/corelocation/cllocationmanager/1423836-desiredaccuracy
当请求高精度的位置数据时,由位置服务交付的初始事件可能没有所要求的准确性。location服务尽可能快地传递初始事件。然后,它继续以您请求的准确性确定位置,并在有数据可用时,根据需要交付额外的事件。对于iOS和macOS,此属性的默认值为kCLLocationAccuracyBest。对于watchOS,默认值是kCLLocationAccuracyHundredMeters。此属性仅与标准位置服务一起使用,在监视重大位置更改时不使用。
希望它能帮上忙
发布于 2017-09-19 15:43:30
来自CLLocationManager的标题:
用于表示以米为单位的位置精度级别的类型。以米为单位的数值越低,在物理上就越精确。负精度值表示无效位置。
苹果并没有在他们的文档中指定CLLocationAccuracyBest到底代表了什么,这很可能是因为我们没有得到保证的准确性。充其量,CoreLocation可以把你带到几米以下,但是很多时候--尤其是在室内--你不会得到那种可靠的读数。
对于房间间的室内范围,您可能会得到更可靠的结果使用iBeacons与CoreLocation。
https://stackoverflow.com/questions/46304258
复制相似问题