Геозона для отображения всех офисов в радиусе 5 км.

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

1 ответ

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

Таким образом, если вы можете рассчитать точку в 5 км к востоку и 5 км к западу, вы знаете, что любые соответствующие местоположения должны иметь долготу между этими значениями. Повторите с севера и юга.

Ссылки в нижней части страницы Википедии содержат реализации на большинстве языков программирования.

Другие вопросы по тегам