NMEA GPS 未获得正确的坐标格式

本文关键字:坐标 格式 GPS NMEA | 更新日期: 2023-09-27 18:33:59

我正在使用这篇文章和示例来测试我的GPS。首先,我必须说该程序确实很棒,但我当然需要一些帮助。

第一

所以我需要的是获取"正常"(据我所知正常(欧洲格式的坐标,例如十进制为 16,445554477 的东西......在这里,我得到的学位很好,但我需要十进制值。当我尝试输入我在这个程序中得到的十进制值时,我不知道如何使用它们,因为我不熟悉这种格式。例如,我得到了 5600,35568 的东西......我不知道如何在谷歌地图中表示它。

第二

我正在将GPS中的数据记录到数据库中。问题是我在一秒钟内得到 2-4 条记录。如何使其达到每秒一个数据?我试图查看代码但没有成功。

第三个 - 也是最后一个

如何将第一个问题中的这些数据实现到谷歌地图API v3中?

第一个问题是主要问题。另外两个只有在有人知道该怎么做的情况下。

我相信很多人都有和我一样的问题。当然,有很多人解决了这个"问题"。所以请给我一些例子。

有一个很好的编码:)

干杯!

NMEA GPS 未获得正确的坐标格式

First
您需要解析 NMEA 字符串,您应该感兴趣的字符串是 RMC

$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43

其中包含纬度和经度的信息。要将它们从度坐标转换为 x y 坐标,请检查此线程。使用 WGS84 将它们转换为 X Y 坐标后,您就可以在 Google 地图中使用它们。
第二
通常GPS数据接收间隔为1(一(秒。我不确定您如何在一秒钟内获得 2-4 条记录。但是我建议您使用计时器并在每一秒后获取记录,并且只存储您需要的记录,就像在您的情况下,您需要存储GPRMC字符串中可用的基于位置的数据。请查看此链接 编写自己的 GPS 应用程序:第 2 部分
第三
如果您想根据谷歌地图中的第一个问题显示位置,您会在谷歌地图API上找到很多帮助。我没有使用过这个API,但我使用过安卓。

我在 toptechboy.com 找到的一些代码

 degWhole=float(int(GPS.longitude/100)); //gives me the whole degree part of Longitude
 degDec = (GPS.longitude - degWhole*100)/60; //give me fractional part of longitude
 deg = degWhole + degDec; //Gives complete correct decimal form of Longitude degrees
  if (GPS.lon=='W') {  //If you are in Western Hemisphere, longitude degrees should be negative
    deg= (-1)*deg;
  }

希望对你有帮助...