从英制坐标转换到标准的WGS84 nmea

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

所以我使用这个例子来testing我的GPS。 我想要做的是如何获得标准的十进制值,如纬度和经度56,322415。 因为现在我得到了5304,254的价值。

我需要这种forms,因为我会用这个Google地图。

你可以检查代码,并告诉我应该省略什么或如何将其转换为WGS84格式。

谢谢。

编辑:

这是解释当我运行程序时看到的图片 在这里输入图像说明

这是一个CodeProject页面:

在这里输入图像说明

编辑2:

所以当我使用THIS CONVERTER来查看什么十进制值,我需要得到有度时,我不会得到相同的值。

这是我应该得到的价值:

在这里输入图像说明

这是我在程序中获得的价值:

46.64662666666667

任何想法,为什么我不能得到相同的转换?

ParseNMEA函数中的以下行是从WGS84转换到英国法令的那一行Survey coordinates的坐标:

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

这听起来像你的问题现在已经解决了,我知道有不同的本地数字格式引起的问题,在一个评论中提出和解决:

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

如果你只需要经纬度的十进制值,我想你可以把整个东西丢掉,只用Dirk提供的解决方案! = O)

亚历克斯