1

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

第一的

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

第二

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

第三- 也是最后一个

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

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

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

有一个很好的编码:)

干杯!

4

2 回答 2

2

首先
你需要解析你的 NMEA 字符串,你应该感兴趣的字符串是 RMC

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

这有纬度和经度的信息。要将它们从度数转换为 xy 坐标,请检查此线程。使用 WGS84 将它们转换为 XY 坐标后,您就可以在 Google 地图中使用它们。

通常 GPS 数据接收间隔为 1(一)秒。我不确定您如何在一秒钟内获得 2-4 条记录。但我建议您使用计时器并在每秒后获取记录,并且只存储您需要的记录,就像在您的情况下,您需要存储 GPRMC 字符串中可用的基于位置的数据。请查看此链接编写您自己的 GPS 应用程序:第 2 部分
第三
部分 如果您想根据谷歌地图中的第一个问题显示位置,您会在Google Maps API上找到很多帮助. 我没有使用过这个 API,但我使用过 android。

于 2012-05-10T18:33:54.127 回答
2

我在 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;
  }

希望能帮助到你...

于 2014-09-15T12:59:52.567 回答