我對我從geosphere::distm(). 我計算從起點到兩點的距離a和b。在谷歌地圖,我可以看到,從距離start到a比從距離大start到b。但該distm()功能使它看起來反過來是正確的。
library(geosphere)
start <- c(42.23025, -83.71448)
a <- c(42.30022, -83.71255)
b <- c(42.24302, -83.75135)
# distm() says start is closer to a:
distm(start, a, fun = distHaversine)
#> [,1]
#> [1,] 879.541
distm(start, b, fun = distHaversine)
#> [,1]
#> [1,] 4107.282
但是 NOAA 的距離計算器顯示 到 的距離a約為 4 英里,而b. 的距離約為 2 英里。a當我對勾股定理做一個簡單的應用時,我得到了接近兩倍的相似比率:
sqrt((start[1] - a[1])^2 (start[2] - a[2])^2)
#> [1] 0.06999661
sqrt((start[1] - b[1])^2 (start[2] - b[2])^2)
#> [1] 0.03901884
什么解釋了結果distm()?我的積分相距很近,不到五英里,這會有所貢獻嗎?
uj5u.com熱心網友回復:
這看起來像是交換了緯度和經度的情況。(我每次都這樣做。)雖然傳達坐標的傳統方式是 Lat,Long,但distm正在尋找 Long,Lat(即與 XY 相關)。我們可以使用rev來交換坐標向量的順序。
distHaversine(rev(start), rev(a))
[1] 7790.647 # 4.8 miles
distHaversine(rev(start), rev(b))
[1] 3354.825 # 2 miles
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325684.html
上一篇:如何根據時間塊創建唯一索引
下一篇:將列添加到R中的tibble-獲取“is.data.frame(.data)中的錯誤:缺少引數“.data”,沒有默認值”
