2010-11-13 123 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

相关问题