VB源码 球面距离公式计算给定两点间距离 球面两点最短距离



在业务上经常需要计算2个地点的距离,如台风路径预报误差。两点之间的距离实际上是球面距离,参考了网上搜索后,编写了VB源程序,供大家参考。yry,2012.5Haikou

Const EARTH_RADIUS = 6378.137
Const pi = 3.1415926535898
Public IS_stationP As Boolean

Private Sub Command1_Click()
Dim lon1 As Double, lon2 As Double, lat1 As Double, lat2 AsDouble
lon1 = Val(Text1)
lat1 = Val(Text2)
lon2 = Val(Text3)
lat2 = Val(Text4)
Lab_距离.Caption = "近似距离: " &Format(GetDistance(lat1, lon1, lat2, lon2), "####.0")& " 公里"
End Sub

Function rad(ByVal d As Double) As Double
rad = d * pi / 180
End Function
【VB源码】球面距离公式计算给定两点间距离 球面两点最短距离

'知道两点经纬度,求近似距离
Public Function GetDistance(lat1 As Double, lng1 As Double, lat2 AsDouble, lng2 As Double) As Double
Dim radlat1 As Double, radlat2 As Double
Dim a As Double, b As Double, s As Double, Temp As Double
radlat1 = rad(lat1)
radlat2 = rad(lat2)
a = radlat1 - radlat2
b = rad(lng1) - rad(lng2)
Temp = Sqr(Sin(a / 2) ^ 2 + Cos(radlat1) * Cos(radlat2) * Sin(b /2) ^ 2)
s = 2 * Atn(Temp / Sqr(-Temp * Temp + 1))'没有反正弦函数,网上找了个
s = s * EARTH_RADIUS
GetDistance = s
End Function

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/211512.html

更多阅读

股票公式全解析:16 股票软件源码引入

股票公式全解析:[16]股票软件源码引入——简介我们上一篇文章主要说明了大智慧的源码引入的基本方法,大家在使用这个源码的时候一定要注意具体的设置,按照我的要求一步一步实现,源码的编写我会专门有一个介绍,现在我继续说明其他股票软件

易语言进度条源码 精易论坛

易语言进度条源码——简介今天,我给大家带来如何弄进度条!易语言进度条源码——工具/原料电脑易语言易语言进度条源码——方法/步骤易语言进度条源码 1、打开易语言!拉

声明:《VB源码 球面距离公式计算给定两点间距离 球面两点最短距离》为网友血色天国分享!如侵犯到您的合法权益请联系我们删除