计算经度纬度两点间的距离

雨师88 2011-01-14 01:06:00
Public Function rad(d)
rad = d * 3.1415926 / 180
End Function

Public Function ASin(ByVal Number As Double) As Double
ASin = Atn(Number / Sqr(-Number * Number + 1))
End Function
Public Function d(lng1, lat1, lng2, lat2)

er = 6378.137
radLat1 = rad(lat1)
radLat2 = rad(lat2)
a = radLat1 - radLat2
b = rad(lng1) - rad(lng2)
s = 2 * ASin(Sqr(Sin(a / 2) * Sin(a / 2)) + Cos(radLat1) * Cos(radLat2) * Sin(b / 2) * Sin(b / 2))
s = s * er
s = Round(s * 10000) / 10000
d = s
End Function

当纬度相差1°时,距离为111.几
问题:当经度相差1°,距离为0.几,理论上也应该在111。几左右,不知道公式什么地方有问题。
...全文
575 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧