2010-11-13 125 views
3

我只是卡在奇怪的計算。找到經緯度的距離

我想通過使用這個網站提到的公式找到緯度和經度的距離。

http://www.movable-type.co.uk/scripts/latlong.html

每一件事情是確定那裏,當我用計算器做到這一點,但是當我開始做它通過編程有在結果的diiference。

這裏是我的代碼

lat = Convert.ToDouble((s3[a])); 
       longt =Convert.ToDouble((s4[a])); 
       Avg_lat = pc._Latitude - lat; 
       Avg_longt = pc._Longitude - longt; 



      a_hold =(Math.Sin(Avg_lat/2) * Math.Sin(Avg_lat/2))+ (Math.Cos(pc._Latitude) * Math.Cos(lat)) * (Math.Sin(Avg_longt/2) * Math.Sin(Avg_longt/2)); 
      c_hold = 2 * Math.Atan2(Math.Sqrt(a_hold), Math.Sqrt(1 - a_hold)); 
      // c_hold = (c_hold * 180)/3.12; 
      distance = 6371 * c_hold; 

問題部分是數學funcation這裏計算弧度的事情,我想它的程度。所以我只是找到了一個公式,將弧度轉換成度,但該公式不會正確轉換計算。

我只是困惑怎麼辦bcoz沒有任何其他選項將弧度轉換爲度..

任何建議或IDea都會被認可。尋找快速重播

感謝

回答

3

你正確地轉換在所有必要的地方呢?正確的弧度度公式將乘以(180.0/Math.PI)並且度數到弧度公式將乘以(Math.PI/180.0)

您需要對參數Math.SinMath.Cos進行度數到弧度的轉換。如果您嘗試以度數模式模擬科學計算器的輸出,則需要對返回值Math.Atan2進行弧度到度的轉換,但是您鏈接到的網頁的公式表示爲而不是所以(只轉換輸入)。

0

計算器會有一個弧度的選項,讓您確認您的轉換。

弧度=度* PI/180

相關問題