2015-09-02 7 views
27

I georeferenzierten Punkte haben in langen, lat Format, und ich möchte den Abstand zwischen ihnen mit R. berechnen Dies scheint ziemlich geradlinig, aber ich kann‘ t eine Funktion finden, die es leicht macht. Ich habe versucht, es mit dem gdistance-Paket zu tun, aber es scheint sehr verworren und orientiert an Grafik, ich brauche nur eine Nummer. Etwas wie distanceBetween(pointA,pointB), das eine Zahl zurückgibt.Funktion geospatial Abstand zwischen zwei Punkten berechnen (lat, long) mit R

UPDATE: Diese Frage zu R spezifisch ist, die mögliche dup ist allgemeiner. Obwohl es eine R-spezifische Antwort gibt, ist sie in 28 anderen Antworten vergraben.

+5

See 'spDistsN1()' Funktion in 'sp' Paket. –

+0

Danke Pascal, das hat funktioniert! – SteveO7

+0

Haben Sie die Antwort von Jaap unter http://stackoverflow.com/a/23095329/2514568 gesehen? –

Antwort

37

Laden der Geosphäre Paket erhalten Sie eine Reihe von verschiedenen Funktionen verwenden können

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

auch:

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

...

+0

Diese sehen alle auch nützlich aus! Wenn sie ihre Beschreibungen lesen, verwenden sie nur leicht unterschiedliche Berechnungen. Ich konnte den Wald nicht durch die Bäume finden! – SteveO7

+3

Eine kleine Notiz. Die Methode Geosphäre: distm ist nicht vektorisiert. Um es zu vektorisieren, benutzen Sie die Funktionen * apply *. – DotPi

+0

@DotPi Es heißt in der Dokumentation (Version '1.5-5') für' distm' dass die ersten beiden Argumente 'Nx2' Matrizen sein kann (dh. Sammlungen Punkte), so sehe ich nicht die Notwendigkeit für' gelten 'hier? – oens

6

Vereinbaren Sie mit @PereG auf Antwort oben, aber denken, dass die Reihenfolge von Breite und Länge ist umgekehrt: lon, lat. Dies wirkt sich auf Ihre Ergebnisse für die Entfernungsmatrix aus. So richtig ist:

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

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

Verwandte Themen