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:
- distance géographique / géospatiale entre 2 listes de points lat/lon (coordonnées) 1 réponse
- calculer la distance entre deux points latitude-longitude? (Formule Haversine) 34 réponses
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.
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()
...
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