excel - 为什么我在纬度和经度之间的距离计算上很差?
问题描述
谁能告诉我为什么我要离开?我正在研究 Power BI /Excel 上两点之间的距离。我在网上进行了研究,发现了一个每个人都使用的非常常用的公式。所以测试了一下,我的距离很远。请看下文,
Logan 和 Draper 之间的距离是 111 英里,但我的距离是 3750 英里。我对公式进行了硬编码以进行测试。我知道这不是 100% 准确的,但我完全不正确。
Orginal formula =ACOS(SIN(Lat1)*SIN(Lat2) +COS(Lat1)*COS(Lat2)*COS(Lon2-Lon1)) *3958.756
My hard coded one = COS(SIN(40.51)*SIN(41.73) +COS(40.51)*COS(41.73)*COS(-111.78-(-111.87))) *3958.756
太感谢了
解决方案
继上一个答案之后,您需要将纬度和经度转换为弧度。
按照这个网站的公式,我在 134.9 公里的 DAX 中得到了相同的结果。该网站有一个计算器,我在 DAX 中得到了相同的结果。
Distance =
var _lat1 = RADIANS(40.524670)
var _lon1 = RADIANS(-111.863823)
var _lat2 = RADIANS(41.7379)
var _lon2 = RADIANS(-111.8308)
var R = 6371
var _dif1 = (_lat2 - _lat1)
var _dif2 = (_lon2 - _lon1)
var _a = (sin(_dif1/2)^2) + cos(_lat1) * cos(_lat2) * (sin(_dif2/2) ^ 2)
var _c = 2*ASIN(SQRT(_a))
return _c * R
推荐阅读
- windows - 运行具有随机等待时间的程序
- c# - 我们可以将特定的 PDF 数据提取到 Excel 中吗
- c# - 我想显示我的线程将在 C# 控制台应用程序中再次运行多少次
- tensorflow - 生产、后端或前端的深度学习模型?
- iot - Windows 设备门户 - 安装应用程序不可见
- google-apps-script - 如何在 Google Apps Script 上只选中一个而不是两个?
- android - Firebase Phone Auth:白名单真实号码是否会导致发送短信?
- svn - pysvn import_pysvn._pysvn_3_6.ClientError:导入文件时需要新的条目名称
- botframework - 为什么 Bot 框架中的语言会自动更改?
- javascript - 双括号 ()() 如何在 JavaScript 中工作?