web-dev-qa-db-ja.com

Rを使用して2つのポイント(緯度、経度)間の地理空間距離を計算する関数

長い緯度の形式でジオコーディングされたポイントがあり、Rを使用してポイント間の距離を計算します。これは非常に簡単なようですが、それを簡単に行う関数は見つかりません。私はgdistanceパッケージでそれをやろうとしましたが、それは非常に複雑で、グラフ化に向いているようです。番号を返すdistanceBetween(pointA,pointB)のようなもの。

更新:この質問はRに固有のものです。可能なdupはより一般的です。 R固有の回答がありますが、他の28の回答に埋もれています。

46
SteveO7

さまざまな機能を使用できるgeosphereパッケージをロードする

library(geosphere)
distm(c(lon1, lat1), c(lon2, lat2), fun = distHaversine)

また:

distHaversine()
distMeeus()
distRhumb()
distVincentyEllipsoid()
distVincentySphere()

...

67
PereG

上記の回答については@PereGに同意しますが、緯度と経度の順序は逆になります。lon、lat。これは、距離行列の結果に影響します。正しいのは:

library(geosphere)
distm (c(lon1, lat1), c(lon2, lat2), fun = distHaversine)

ソース: ftp://cran.r-project.org/pub/R/web/packages/geosphere/geosphere.pdf

14
Agustín Indaco