【问题标题】:Source of android nmea speedandroid nmea速度的来源
【发布时间】:2013-01-22 05:25:13
【问题描述】:

我正在构建一个小型游艇比赛应用程序来测量我的逆风速度,其中速度相对较低,在 6-10 节范围内,并且固有的 GPS 位置误差导致报告的速度显着波动(即为什么我要努力而不是使用手持 GPS 装置)。
因此,我试图通过使用 $GPRMC 语句中的 NMEA 纬度/经度和时间计算对 onNmeaReceived 事件(默认发生在 1000 毫秒)的 5 次和 10 次调用的较长时间段内的速度来消除错误.

将 NMEA 报告的速度与自上次事件以来计算的速度进行比较时,我发现它们有很大的不同,所以我想知道 $GPRMC 语句中提供的 NMEA 速度是如何计算的? 可能的答案可能是

  • 从 GPS 多普勒速度推断?
  • 计算为前一秒的距离/时间?
  • 还是别的......?

文档对此事完全保持沉默。

使用 Android 4.0.3 三星 SGS 11

【问题讨论】:

  • 我很确定这些信息会直接来自 GPS 芯片。所以它会因设备而异。你需要很好地掌握如何在这个级别上计算它。
  • 感谢您的意见,但这只是我的问题。我试图找出速度是由芯片报告的还是在操作系统中计算出来的。

标签: android performance gps nmea


【解决方案1】:

GPS 中的速度来自多普勒效应,它比位置本身准确得多。 (这仅在设备移动时有效,越快越好) 根据与时间相关的位置变化确定速度,仅适用于更高速度的 GPS。 (> 10 公里/小时)。

同样适用四个“课程”(标题)。

这些值始终来自 GPS 芯片,尽管在 API 方面几乎没有记录。

平均过去 x 次调用有点简单,它应该是过去 x 秒。如果你没有得到一个位置,你仍然需要关闭平均窗口。当设备静止时,有些设备不报告任何位置,所以你迫不及待地想得到 x 事件。

【讨论】:

  • 您好,感谢您的意见。如您所知,我知道 GPS 可以从多普勒效应中推断出速度/方向,但是由于 GPS 与我(Java 编码器)通过两层软件分开:1)GPS 固件和 2)Android本身,我不知道在 NMEA 句子或位置对象中向我报告了什么。所以,我想知道您的知识是基于“内幕消息”,还是像我一样,基于一般阅读和对技术的兴趣?
  • 我的知识基于所有 GPS 芯片提供的接口。在智能手机上,GPS 是可靠测量速度的唯一方法。理论上,在低速时,加速度传感器可能会提供额外的支持(如在 ios 模式 CllLocationbestForNavigation 中)
  • @AlexWien 我在收听 NMEA 句子 stackoverflow.com/questions/63917764/… 时收到 GPGGAGPRMC 时遇到问题,也许你能帮我解决这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多