Функция r, чтобы найти все геолокации в пределах определенного радиуса
Я пытаюсь написать функцию, которая идентифицирует все почтовые индексы, которые находятся в пределах 10 км от станции мониторинга окружающей среды.
Например, у меня есть около 8000 геокодированных почтовых индексов:shortpostcodes
| | postcode | suburb | state | longitude | latitude |
|---|----------|------------|-------|-----------|----------|
| | <chr> | <chr> | <chr> | <dbl> | <dbl> |
| 1 | 2065 | Crows Nest | NSW | 151.20 | -33.83 |
| 2 | 2095 | Manly | NSW | 151.29 | -33.80 |
И около 70 геокодов станции мониторинга:shortstations
| | location | longitude | latitude |
|-----|-----------|-----------|-----------|
| | <chr> | <dbl> | <dbl> |
| 1 | Lindfield | 151.1500 | -33.78278 |
| 2 | Rozelle | 151.1625 | -33.86583 |
| 3 | Sydney | 151.1956 | -33.87250 |
Я пытаюсь использовать distVincentyEllipsoid
функция от geosphere
Пакет для расчета расстояния между координатами. Например:
distVincentyEllipsoid(shortpostcodes[1, c(4,5)], shortstations[1, c(2,3)])
# [1] 6990.635
Функция должна возвращать новую таблицу с колонкой, в которой перечислены все почтовые индексы <10 км от станции мониторинга, и колонкой с названиями всех станций в радиусе 10 км.
Я не уверен в самом эффективном способе езды на велосипеде distVincentyEllipsoid
по всем геолокациям станции мониторинга для каждого почтового индекса - я пытался использовать apply()
без удачи