Fonction pour calculer la distance géospatiale entre deux points (lat,long) en utilisant R [dupliquer]

Cette question a déjà une réponse ici:

J'ai des points géocodés au format long et lat, et je veux calculer la distance entre eux en utilisant R. Cela semble assez simple, mais je ne peux pas trouver une fonction qui le fera facilement. J'ai essayé de le faire avec le paquet gdistance, mais il semble très compliqué et orienté vers le graphisme, j'ai juste besoin d'un nombre. Quelque chose comme distanceBetween(pointA,pointB) qui renvoie un nombre.

UPDATE: cette question est spécifique à R, le dup possible est plus général. Bien qu'il existe une R réponse spécifique, il est enterré dans 28 autres réponses.

31
demandé sur SteveO7 2015-09-03 01:11:35

2 réponses

Chargement du package geosphere vous pouvez utiliser un certain nombre de fonctions différentes

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

Aussi:

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

...

49
répondu PereG 2018-01-31 04:05:00

D'accord avec @PereG sur la réponse ci-dessus, mais pensez que l'ordre de latitude et de longitude est l'inverse: lon, lat. Cela affectera vos résultats pour la matrice de distance. Donc correct est:

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

Source: ftp://cran.r-project.org/pub/R/web/packages/geosphere/geosphere.pdf

8
répondu Agustín Indaco 2016-10-29 01:20:31