2015年11月19日 星期四

[R] 計算經緯度距離

可利用Imap library計算兩經緯度之間距離,R Script如下:
library(Imap)

gdist(121.24056,25.10048,121.2945078,25.1003632,units = "km")
unit可切換距離單位

結果如下
> gdist(121.24056,25.10048,121.2945078,25.1003632,units = "km")
[1] 5.441616

也可利用下列function計算
# Calculate distance in kilometers between two points
earth.dist = function (long1, lat1, long2, lat2){
rad = pi/180
a1 = lat1 * rad
a2 = long1 * rad
b1 = lat2 * rad
b2 = long2 * rad
dlon = b2 - a2
dlat = b1 - a1
a = (sin(dlat/2))^2 + cos(a1) * cos(b1) * (sin(dlon/2))^2
c = 2 * atan2(sqrt(a), sqrt(1 - a))
R = 6378.145
d = R * c
return(d)
}

> earth.dist(121.24056,25.10048,121.2945078,25.1003632)
[1] 5.438344

沒有留言:

張貼留言