Геозона для отображения всех офисов в радиусе 5 км.
Я хочу отобразить все офисы моего клиента в радиусе 5 км от места. Адреса офиса хранятся в БД как широта и долгота. У меня есть текущее местоположение пользователя. Я не знаю, как получить все широты и долготы внутри круга 5 км для отправки на сервер или есть лучший подход? Клиентское приложение является устройством Android.
1 ответ
Вы должны исследовать использование формулы Хаверсин, которая вычисляет расстояние между двумя точками на сфере. В зависимости от вашей базы данных вы можете подключить широты и долготы напрямую с помощью оператора SQL или, в качестве альтернативы, исключить все записи за пределами ограничительной рамки, а затем выполнить итерацию по оставшимся записям.
Таким образом, если вы можете рассчитать точку в 5 км к востоку и 5 км к западу, вы знаете, что любые соответствующие местоположения должны иметь долготу между этими значениями. Повторите с севера и юга.
Ссылки в нижней части страницы Википедии содержат реализации на большинстве языков программирования.