我想知道低功耗显着变化定位服务的精度和距离过滤器(即如果我使用startMonitoringSignificantLocationChanges,它的准确度是多少,显着变化的距离是多少)?
我需要一些来自实时应用的实验性(非纪录片)信息
去年,我有机会在 WWDC 上与 Apple 定位工程师交谈,这就是我向我解释的方式。
显着位置变化是所有位置监控类型中最不准确的。它仅在蜂窝塔转换或更改时才获得更新。这可能意味着基于用户所在位置的不同级别的准确性和更新。市区,更多更新,更多塔楼。出城,州际,更少的塔和变化。
这也是最难测试的位置类型,因为您也不能使用模拟器。我不确定他们是否已修复它以使用 6.0 的 GPX 文件,但重要的位置更改 api 在 iOS 6 之前的模拟器中根本不起作用。
由于许多这些原因,我试图避免使用表示位置更改。有时无能为力。我最终使用了区域监控 API,因为它们更加准确,并且在电池寿命方面也同样出色。希望这可以帮助。
从苹果文档:
此界面仅在检测到设备相关蜂窝塔发生变化时才提供新事件,从而降低更新频率并显着降低功耗。
似乎没有关于确切精度的更具体信息,所以我假设您的精度大致相当于 iOS 设备当前所在区域内的蜂窝塔之间的大致距离(在更多人口稠密的地区)。
那时我必须构建一个使用手机信号塔重大位置变化的应用程序。
简短的回答:非常不准确。
我显然跨越了我所在地区的界限。
根据我们在应用程序中观察到的情况,它可能在几百米到几公里之外。我们的测试是在市区,郊区的手机信号塔与火车轨道和其他郊区手机信号塔平行。
相当粗糙。
大部分时间都是一致的。我注意到每次我要进入通往地下火车站的隧道时,它都会触发我为 CBD 市区设置的 3 个区域穿越通知。
我使用的是 Xcode 4.6.2,你确实可以在这个模拟器上模拟显着的位置变化。在 iOS 模拟器中,您需要的菜单项是 Debug->Location->Freeway Drive。警告(我欢迎被告知我错了): 1. 过了很长一段时间,似乎没有更重要的位置更改事件。2. 您只能在一般库比蒂诺/SF 区域内驾驶预先定义的路线。如果您只关心重大的位置变化,那很好。
请注意,虽然您可以访问从重大位置更新中获得的位置的速度属性,但它没有用!模拟器实际上给出了速度,但在真实设备中速度不可用,因为从手机信号塔获得的位置不包括实际速度(与 GPS 不同)。更如之前所说,位置本身非常不准确,可能会偏离几公里。请注意这一点。获得速度的唯一方法是进行两次配置并手动计算速度