计算R中具有经度,纬度和高程的两个点之间的距离

时间:2018-06-28 20:55:17

标签: r geo

是否有一个程序包,该程序包可以考虑高程来计算两个点之间的空间距离。因此,对于每个点,我们将具有纬度,经度和海拔。到目前为止,我不得不编写以下函数:

library(geosphere)  
distance3D <- function (point1, point2) {
      planiDist <- distm(point1[1:2], point2[1:2])
      altiDist <- point2[3] - point1[3]
      dist3D <- sqrt(planiDist^2+altiDist^2)
      return(dist3D)
    }

我只是想知道R软件包之一中是否存在一个函数。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找Haversine大圆距。

library(geosphere)
distHaversine(p1, p2, r=6378137)


#p1, p2-longitude/latitude of point(s). Can be a vector of two numbers, 
     a matrix of 2    columns (first one is longitude, second is latitude) 
     or a   SpatialPoints* object
#r-radius of the earth; default = 6378137 m