网站大量收购闲置独家精品文档,联系QQ:2885784924

EXCEL计算两经纬度之间距离宏.doc

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
利用excel计算两经纬度之间距离及角度 按ALT+F11进入VBA编译器 在工程管理器中插入“模块”,然后将下面代码粘贴到模块里 计算两经纬度之间距离=cal_long_lat(经度1,纬度1,经度2,纬度2) Public Function Cal_Long_Lat(ByVal long1 As Double, ByVal lat1 As Double, ByVal long2 As Double, ByVal lat2 As Double) As Double Const PI As Double = 3.1415926535 Dim AngleLong1, AngleLat1, AngleLong2, AngleLat2 As Double AngleLong1 = long1 * PI / 180 AngleLat1 = lat1 * PI / 180 AngleLong2 = long2 * PI / 180 AngleLat2 = lat2 * PI / 180 Dim sinX, cosX As Double sinX = Sin(AngleLat1) * Sin(AngleLat2) cosX = Cos(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong2 - AngleLong1) x = sinX + cosX On Error Resume Next ax = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1) Cal_Long_Lat = 6368.16 * ax End Function 计算两经纬度之间角度=cal_bearing(经度1,纬度1,经度2,纬度2) Public Function Cal_bearing(ByVal long1 As Double, ByVal lat1 As Double, ByVal long2 As Double, ByVal lat2 As Double) As Double Const PI As Double = 3.1415926535 Dim AngleLong1, AngleLat1, AngleLong2, AngleLat2 As Double AngleLong1 = long1 * PI / 180 AngleLat1 = lat1 * PI / 180 AngleLong2 = long2 * PI / 180 AngleLat2 = lat2 * PI / 180 y = Sin(AngleLong1 - AngleLong2) * Cos(AngleLat2) x = Cos(AngleLat1) * Sin(AngleLat2) - Sin(AngleLat1) * Cos(AngleLat2) * Cos(AngleLong1 - AngleLong2) Cal_bearing = 360 - (Atan2(y, x) * 180 / PI + 360) Mod 360 End Function Public Function Atan2(ByVal y As Double, ByVal x As Double) As Double Const PI As Double = 3.1415926535 If y 0 Then If x = y Then Atan2 = Atn(y / x) ElseIf x = -y Then Atan2 = Atn(y / x) + PI Else Atan2 = PI / 2 - Atn(x / y) End If Else If x = -y Then Atan2 = Atn(y / x) ElseIf x = y Then Atan2 = Atn(y / x) - PI Else Atan2 = -Atn(x / y) - PI / 2 End If End If End Function

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档