GPS卫星数量和位置过滤

Mis*_*ith 3 gps android location nmea satellite

根据可用Location字段,在不考虑时间戳的情况下,浮动精度似乎是确定 GPS 位置好坏的主要字段。我想知道从 NMEA 数据(我认为是 $GPGGA)或通过LocationManager.getGpsStatus. 如何筛选高精度GPS位置?更具体地说,我也有兴趣了解:

  • 卫星数量越多,修复效果越好?我知道卫星的最小数量是 4 颗,但是是否可以说 8 颗卫星的定位比 6 颗卫星的定位要好得多?
  • 卫星数量不是已经包含在精度字段中了吗?
  • 互联网上的一些页面提到一个重要参数是 DOP(精度稀释)。似乎它出现在 $GPGSA NMEA 句子中。这句话在Android上可用吗?此外,哪些NMEA语句保证在Android中可用?

谢谢。

Ren*_*eno 5

卫星数量越多,修复效果越好?我知道卫星的最小数量是 4 颗,但是是否可以说 8 颗卫星的定位比 6 颗卫星的定位要好得多?

完全取决于 GPS 芯片组及其上运行的代码。一般来说,是的,更多的卫星意味着更好的预测。

互联网上的一些页面提到一个重要参数是 DOP(精度稀释)。似乎它出现在 $GPGSA NMEA 句子中。这句话在Android上可用吗?此外,哪些NMEA语句保证在Android中可用?

是的,NMEA 句子可在 Android 中使用。现在 NMEA 标准非常庞大,因此大多数 GPS 芯片组仅支持 NMEA 的一小部分。我无法保证任何内容,但我发现 GGA、RMC、GSV、GST 和 GSA 是最受欢迎的。我使用过的大多数芯片组都提供 VDOP 和 HDOP。

您似乎想提高 GPS 定位的准确性?为什么不使用加速度计、陀螺仪、方向和其他传感器(甚至气压计/Wifi RSSI)或卡尔曼滤波。谷歌地图这样做是为了提高准确性。

如何筛选高精度GPS位置?

这是科学的进步,获得完美的 GPS 位置是一件困难的事情,因为变量的数量不断变化,并且考虑到我们正在使用简化的民用数据这一事实。


Ale*_*ien 5

答案很简单,使用 HDOP 值。
hdop 越小,精度就越好。(但是没有任何保证,就像所有带有 GPS 的东西一样)
卫星的数量没有多大帮助,忽略它们。(卫星星座更重要,以 DOP 和 HDOP 表示)
使用 hdop < 5,并忽略低于特定速度阈值(例如 5km/h)的所有修复。
此外,您可以仅使用“3D-”类型的修复使固定”。您可以在基本 NMEA 消息中找到所有这些内容。(RMC、GSA、GGA)

不要使用陀螺仪、加速度计,这对你我和大多数其他人来说可能会做很多工作。