如何获得高于 1Hz 的 CoreLocation 刷新率?

Posted

技术标签:

【中文标题】如何获得高于 1Hz 的 CoreLocation 刷新率?【英文标题】:How to get faster than 1Hz CoreLocation refresh rate? 【发布时间】:2018-03-20 15:06:55 【问题描述】:

如果我以尽可能高的准确度单独使用 CoreLocation,我会获得每秒一次或 1Hz 的更新。但是,如果我有一个刷新率为 10Hz 的外部蓝牙连接 GPS 单元,我仍然只能从 CoreLocation 获得 1Hz 的响应。

我做错了什么吗?还是 CoreLocation 无论如何都会返回 1Hz 的结果?

是否需要使用蓝牙框架直接连接蓝牙 GPS 单元才能获取 10Hz 刷新率数据?

【问题讨论】:

【参考方案1】:

有外部 GPS 单元,例如来自Bad Elf 的那些,ios 将使用它们而不是内部 GPS 接收器,但核心位置的抽象层隐藏了它们的细节;你只是得到更准确的位置。

如果您想要更快的更新,那么您需要integrate directly with the GPS 接收者,而不是使用核心位置。

GPS SDK 让开发人员可以直接访问配置 Bad Elf GPS 配件,以适应各种用例。常见的配置有:

高分辨率位置数据报告 (2-10Hz) 模式的配置 修复质量指标:卫星数量、WAAS 状态、原始 HDOP/PDOP/VDOP 值 UTC 日期和时间 视野中的卫星以及仰角、方位角和原始 SNR 值

【讨论】:

【参考方案2】:

据我所知,CoreLocation 不适用于任何外部附件。因此答案是肯定的,如果你想从外部蓝牙 GPS 配件获取位置更新,你需要通过蓝牙协议和 API 工作......

【讨论】:

我的印象是,如果连接了外部 GPS,CoreLocation 会从中获取位置数据,而不是内部 GPS 芯片。使用时似乎是这种情况,因为使用该设备时位置变得更加准确,但是我仍然每 1 秒才获得一次更新。 即使是这样,它也没有记录在任何地方,因此您无法对其进行中继。所以答案仍然是——自己动手。 我发现的有关外部 GPS 源的唯一有效参考资料在此链接下:developer.apple.com/documentation/corelocation。特别是它说“......包括Wi-Fi、GPS、蓝牙、磁力计、气压计和蜂窝硬件来收集数据”。但同样,没有任何方法可以控制它。有一些对外部 GPS 单元的引用,其中包括一些直接使用它们的 SDK。也许你可以使用其中之一......

以上是关于如何获得高于 1Hz 的 CoreLocation 刷新率?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 CoreLocation 自定义信标的邻近区域

比一直使用 CoreLocation 获得准确位置的更好方法?

如何在android 10或更高版本中获得“总是”位置的许可? (高于 API 29)?

如何由晶振产生1HZ的信号

CoreLocation 捕捉速度

如何在使用“融化”分组的seaborn计数图上获得高于柱的值