Подтвердить что ты не робот

Функция для вычисления геопространственного расстояния между двумя точками (lat, long) с использованием R

У меня есть геокодированные точки в длинном, лат-формате, и я хочу рассчитать расстояние между ними, используя R. Это кажется довольно прямым, но я не могу найти функцию, которая сделает это легко. Я пытаюсь сделать это с помощью пакета gdistance, но он кажется очень запутанным и ориентированным на графику, мне просто нужно число. Что-то вроде distanceBetween(pointA,pointB), которое возвращает число.

ОБНОВЛЕНИЕ: этот вопрос специфичен для R, возможный dup более общий. Хотя есть конкретный ответ R, он похоронен в 28 других ответах.

4b9b3361

Ответ 1

Загрузка пакета геосферы вы можете использовать несколько различных функций

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

также:

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

...

Ответ 2

Согласитесь с @PereG на ответе выше, но подумайте, что порядок широты и долготы - это наоборот: lon, lat. Это повлияет на ваши результаты для матрицы расстояний. Правильно:

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

Источник: ftp://cran.r-project.org/pub/R/web/packages/geosphere/geosphere.pdf