|
最近在写飞控的地面站软件 希望能与大家多交流经验
下面附上距离的计算公式 经验证 精确度很高 vb.net源代码
'计算地球上两点之间的距离并输出
Public Function getdistance(ByVal lat1 As Double, ByVal lon1 As Double, ByVal lat2 As Double, ByVal lon2 As Double) As Integer
Static Dim pi As Double = 3.14159265
Static Dim earthrad As Double = 6378137
Static Dim rad As Double = Math.PI / 180.0
Dim radlat1 As Double = lat1 * rad
Dim radlat2 As Double = lat2 * rad
Dim a As Double = radlat1 - radlat2
Dim b As Double = (lon1 - lon2) * rad
Dim s As Double = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a / 2), 2) + Math.Cos(radlat1) * Math.Cos(radlat2) * Math.Pow(Math.Sin(b / 2), 2)))
s = s * 6378137.0
s = Math.Round(s * 10000) / 10000
Return s
End Function
[ 本帖最后由 leo2006 于 2011-10-11 20:41 编辑 ] |
欢迎继续阅读楼主其他信息
|