簡體   English   中英

為什么我無法計算緯度和經度之間的距離?

[英]Why am I way off with distance calculation between latitude and longitude?

有人能告訴我為什么我離開了嗎? 我正在研究 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

非常感謝

在您的搜索中,您可能在這里看到了這個線程,但以防萬一我提供它。

馬上,我在您的公式中沒有看到任何使用 Pi,這讓我想知道您是否已將緯度轉換為弧度。 當我快速、骯臟地計算餐巾紙的背面並將 lats 轉換為以 rads 表示時,答案就更接近了(錯誤可能是由於我對 PI/180 進行了可怕的舍入。

這個網站也可能有用。

我希望我至少已經為你指明了正確的方向,讓它繼續前進。

繼上一個答案之后,您需要將緯度和經度轉換為弧度。

按照這個網站的公式,我在 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM