我正在写我的硕士论文 atm 并分析了大约 400 个不同的 GPS 轨迹(路径由经度/纬度点列表和相应的时间戳组成)记录在 Android 的 MediaQ-App(可能不重要)(大约 310轨迹)和 iOS(约 90)。
在分析时间戳之间的时间间隔时,我预计在 1 秒频率附近会出现不准确,时间戳应该记录在其中,因为从应用程序的角度来看,Android 或 iO 都不是实时操作系统。尽管如此,为什么会出现大约 200 毫秒步长的局部峰值?很好,我对移动操作系统了解不多:-)
(x轴:秒,y轴:时间戳在该时间点被记录的相对概率。忽略y轴的确切值...)
最佳答案
通常的行为是应用程序直接从系统提供的位置获取时间戳。该应用程序很可能就是这种情况,否则这将是一个严重的编程错误。 (标称 GPS 时间和接收系统时间之间大约 200 毫秒的延迟是合理的,我在我的应用程序和 ios map 应用程序中看到了这一点,它在他们的 map api 中进行了更正以推断 future 的位置,以尝试补偿那个延迟)
在 android(和 ios)下,了解位置是否完全由 GPS 确定是很重要的。在两个平台(ios、android)上,应用程序都可以设置是仅使用 GPS 还是组合使用 GPS + WLAN + 小区定位。
为了获得高质量的记录,强烈建议仅使用 GPS。
一旦有了位置,GPS 芯片通常会输出一个时间戳恰好为 000 的位置。在位置有效之前可能会发生异常。
在 ios 下,如果通过 GPS 获取位置,则毫秒始终为 0。
我没有使用 android 的经验,但通常 GPS 芯片本身会将值设置为 millis = 0。(但是,众所周知,某些 android 手机使用有缺陷的廉价 GPS 芯片,如果没有互联网连接)
可以通过查看航向(或称航向)和速度值判断位置是否为GPS获取,非GPS定位无效(小区塔定位)
要了解此时间变化是来自应用程序(不使用仅 GPS 模式)还是由 Android 引起,您可以在同一部手机上使用另一个应用程序进行测试。 (例如 Motion-X GPS)(或者通过在另一部安卓手机上比较这两个应用)
关于android - 为什么 Android GPS-Fix 会相差 200 毫秒?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33669580/