Вычислите расстояние между двумя точками, имеющими лат, длинное и возвышение в R

Есть ли пакет, который позволяет вычислить пространственное расстояние между двумя точками с учетом высоты. Поэтому для каждой точки мы будем иметь широту, долготу и высоту. До сих пор мне пришлось написать следующую функцию:

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

Расстояние от большого расстояния до Хаверсина может быть тем, что вы ищете.

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