Поиск поблизости от координаты?
Я пытаюсь создать веб-сервис для наших мобильных разработчиков.
У меня есть база данных координат местоположений. Как мне вернуть результат соседних координат по заданной координате? Допустим, в радиусе 100 миль.
Любая идея?
1 ответ
Решение
- Создайте пустой массив.
- Для каждого местоположения проверьте, находится ли это местоположение в радиусе 100 миль от вашей координаты. Если это так, добавьте это местоположение в массив.
- Преобразуйте массив в формат, применимый для веб-службы, например, SOAP или JSON.
- Вывести преобразованный массив
Расстояние в метрах между точками с координатами (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. Знаменатель корректирует радиусы Земли по малой и большой осям.