为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > [最新]excel计算两经纬度之间距离宏

[最新]excel计算两经纬度之间距离宏

2018-05-25 3页 doc 15KB 64阅读

用户头像

is_963767

暂无简介

举报
[最新]excel计算两经纬度之间距离宏[最新]excel计算两经纬度之间距离宏 利用excel计算两经纬度之间距离及角度 1. 按ALT+F11进入VBA编译器 2. 在工程管理器中插入“模块”,然后将下面代码粘 贴到模块里 '计算两经纬度之间距离=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 Doubl...
[最新]excel计算两经纬度之间距离宏
[最新]excel计算两经纬度之间距离宏 利用excel计算两经纬度之间距离及角度 1. 按ALT+F11进入VBA编译器 2. 在工程管理器中插入“模块”,然后将下面代码粘 贴到模块里 '计算两经纬度之间距离=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 3. 关闭VBA编译器,然后在单元格中使用 Cal_Long_Lat(经度1,纬度1,经度2,纬度2) 即可计算两经纬度之间的距离,公式Cal_bearing (经度1,纬度1,经度2,纬度2)可计算两经纬 度之间的角度。
/
本文档为【[最新]excel计算两经纬度之间距离宏】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索