2012-05-11 79 views
1

我以前發過類似的帖子。我從理論上得到了答案,但我真的需要somone來幫助我。從英國座標轉換爲標準WGS84 nmea

所以我使用這個EXAMPLE來測試我的GPS。我想要做的是如何獲得像緯度和經度56,322415標準十進制值。 因爲現在我獲得了5304,254的價值。

我需要這種形式,因爲我會在Google地圖上使用它。

您可以檢查代碼並告訴我應該省略什麼或如何將其轉換爲WGS84格式。

謝謝。

編輯:

這是解釋我所看到的,當我運行程序的圖片 enter image description here

這是一個是一個CodeProject上的頁面:

enter image description here

編輯2:

所以當我使用THIS CONVERTER查看當我有度數時我需要得到什麼十進制值,我沒有得到相同的值。

這是我應該得到的值:

enter image description here

這是我在節目中獲得的價值:

46.64662666666667

知道爲什麼我無法獲得相同的轉換?

+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

+0

嗨,我已經試過你說什麼,當我刪除代碼的一部分,當它被調用變換方法我沒有得到任何信息的。您是否嘗試刪除它?如果您已設法做到這一點,請告訴我您更改了哪部分內容。 –

+0

你嘗試過什麼嗎? –

+0

您好denonth,這屬於非常基本的編程技巧,所以我不知道SO是正確的地方瞭解這一點,但如果一切順利,轉換函數返回true,所以應該是ParseNMEA函數。我沒有下載並運行代碼,但是你應該'返回true;'而不是'return Transform(...)以便函數正常運行。「 – Dirk

1

這聽起來像你的問題現在已經解決了,我知道有不同的本地數字格式引起的問題,這些問題在一個通信中被提出和解決經濟需求:

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

如果你只是想爲緯度和經度十進制值,我想你可以扔掉整個事情現在距離,只是使用由德克所提供的解決方案! = O)

亞歷

+0

嗨,亞歷克斯,是的,你是對的。德克解決方案確實爲我工作。感謝您的時間 –