使用半正弦公式计算两点之间的地理距离

时间:2015-04-04 11:34:19

标签: r

我写了一个像这样的函数

    geodistance <- function (lat1, lon1, lat2, lon2)
{   
    lon2 <- lon2*pi/180;
    lat2 <- lat2*pi/180;
    lon1 <- lon1*pi/180;
    lat1 <- lat1*pi/180;

    dlon <- lon2 - lon1
    dlat<- lat2 - lat1
    a <- sin(dlat/2)^2 + cos(lat1) * cos(lat2) * sin(dlon/2)^2
    c <- 2 * atan2( sqrt(a), sqrt(1-a) ) 
    d <- 3961 * c;
}   

    a<-geodistance(37.749421, -122.437600, 37.889378, -122.325592)
    a   

使用正确的方法更新帖子,这次使用正确的参数来查找2个位置之间的距离!

1 个答案:

答案 0 :(得分:1)

呃,你似乎在试图测量两点之间的距离。在您的示例中,两个点是相同的点,因此它们之间的距离为零。尝试不同的观点,你会得到一个不同的答案:

geodistance(37, -123, 38, -122)
# [1] 1.365098