dist(coords)
ユークリッド距離を使用して距離行列を提供します。また、他のいくつかのオプションも提供します。ただし、harsine 式などのオプションは提供されません。
distHaversine()
指定された 2 つの緯度/経度座標のセットについて、必要な距離 (大円) を計算します。hasersine 公式を使用して大圏距離行列を計算する既存のパッケージ/関数があるかどうか疑問に思っています。
dist(coords)
ユークリッド距離を使用して距離行列を提供します。また、他のいくつかのオプションも提供します。ただし、harsine 式などのオプションは提供されません。
distHaversine()
指定された 2 つの緯度/経度座標のセットについて、必要な距離 (大円) を計算します。hasersine 公式を使用して大圏距離行列を計算する既存のパッケージ/関数があるかどうか疑問に思っています。
既にお気付きかもしれませんがdistHaversine()
、単一の点と 2 列の座標行列の間の距離を計算します。
2 つの座標行列間のすべてのペアワイズ距離を計算するには、 を使用apply()
して行列の 1 つを行ごとに反復し、各点から他のすべての点までの距離を計算します。
library(geosphere)
## Example coordinates (here stored in two column matrices)
cc1 <- rbind(c(0,0),c(1,1))
cc2 <- rbind(c(90,0),c(90,90), c(45,45))
## Compute matrix of distances between points in two sets of coordinates
apply(cc1, 1, FUN=function(X) distHaversine(X, cc2))
# [,1] [,2]
# [1,] 10018754 9907452
# [2,] 10018754 9907435
# [3,] 6679169 6524042
興味深い注記:sp::spDists()
( 2 つの行列間のペアごとの距離を計算する) の内部をざっと見てみると、本質的apply()
に同一の に基づく戦略を使用していることがわかります。spDistsN1()
いくつかの追加のエラー チェックと引数の受け渡し以外の主な違いは、 apply の場所に関数を適用することdistHaversine()
です。