从英国坐标转换为标准WGS84 nmea

时间:2012-05-11 18:06:35

标签: c# windows gps coordinates nmea

我已经发布了类似的帖子。我确实在理论上得到了答案,但我真的需要somone来帮助我。

所以我使用这个EXAMPLE来测试我的GPS。我想要做的是如何获得像纬度和经度的标准十进制值,如53,522415。 因为现在我获得了5304,254的价值。

我需要这种形式,因为我会将其用于谷歌地图。

您可以检查代码并告诉我应该遗漏什么或如何将其转换为WGS84格式。

谢谢。

编辑:

这是解释我在运行程序时看到的内容的图片 enter image description here

这是codeproject页面中的一个:

enter image description here

编辑2:

所以,当我使用THIS CONVERTER查看我有学位时需要得到的小数值时,我得不到相同的值。

这是我应该得到的价值:

enter image description here

这是我在该计划中获得的价值:

  

46.64662666666667

知道为什么我无法获得相同的转换?

2 个答案:

答案 0 :(得分:2)

ParseNMEA函数中的以下行是从WGS84转换到英国条例调查坐标的行:

return Transform(deciLat, deciLon, height);

所以,如果删除该行并只使用deciLat和deciLon值,那么你应该没问题......

问题更新后添加:

您所引用的代码并未考虑本地数字格式,因此如果出现这种情况,可能是因为错误的小数符号匹配。

您可以使用以下函数进行转换,假设输入始终处于不变文化(带小数点):

string[] arrLon = strLon.Split(new char[]{'°', '"'}, StringSplitOptions.RemoveEmptyEntries);
double dblLon = double.Parse(arrLon[0]) + double.Parse(arrLon[1], new System.Globalization.NumberFormatInfo()) / 60;
double deciLon = arrLon[2] == "E" ? dblLon : - dblLon;

其他信息:

NumberFormatInfo:http://msdn.microsoft.com/en-us/library/system.globalization.numberformatinfo.aspx

答案 1 :(得分:1)

听起来你的问题现在已经解决了,我知道在其中一条评论中提出并解决了不同的本地数字格式所导致的问题:

http://www.codeproject.com/Articles/13577/GPS-Deriving-British-Ordnance-Survey-Grid-Referenc?msg=2106791#xx2106791xx

如果你只想要lat和lon的十进制值,我想你现在可以抛弃整个东西,只需使用Dirk提供的解决方案! = O)

亚历

相关问题