Поиск поблизости от координаты?

Я пытаюсь создать веб-сервис для наших мобильных разработчиков.

У меня есть база данных координат местоположений. Как мне вернуть результат соседних координат по заданной координате? Допустим, в радиусе 100 миль.

Любая идея?

1 ответ

Решение
  1. Создайте пустой массив.
  2. Для каждого местоположения проверьте, находится ли это местоположение в радиусе 100 миль от вашей координаты. Если это так, добавьте это местоположение в массив.
  3. Преобразуйте массив в формат, применимый для веб-службы, например, SOAP или JSON.
  4. Вывести преобразованный массив

Расстояние в метрах между точками с координатами (lat1|lng1) и (lat2|lng2) можно рассчитать с помощью

      arccos(sin(lat1)sin(lat2)+cos(lat1)cos(lat2)cos(lng1-lng2))
-----------------------------------------------------------------------
sqrt((cos(0.5(lat1+lat2))/6378137)^2 + (sin(0.5(lat1+lat2))/6356752)^2)

Числитель вычисляет соответствующее расстояние на сфере с радиусом 1. Знаменатель корректирует радиусы Земли по малой и большой осям.

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