Mysql — как осуществить выборку точек в радиусе 10 километров по gps-координатам?

Доброго времени суток. Сколько просторы интернета ни копошил, так и не получилось сконструировать работающее решение.

Задача такова: В mysql базе данных имеется таблица с точками на местности, у каждой точки разумеется есть gps-координаты. Каким образом вытащить из базы точки в радиусе 10 к примеру километров от точки поиска, gps-координаты которой также известны?

За конкретные примеры кода, буду премного благодарен.
  • Вопрос задан
  • 5840 просмотров
Решения вопроса 1
@Kokcuk
SELECT
    id, (
      3959 * acos (
      cos ( radians(60.0000) )
      * cos( radians( lat ) )
      * cos( radians( lng ) - radians(30.0000) )
      + sin ( radians(60.0000) )
      * sin( radians( lat ) )
    )
) AS distance
FROM markers
HAVING distance < 30
ORDER BY distance
LIMIT 0 , 20;


Как-то так
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
afiskon
@afiskon
Мне кажется, вы для своих задач не ту СУБД выбрали. PostgreSQL щелкает такие вещи как нефиг делать - там специальные типы данных, индексы и тд. Тут кое-какие подробности на этот счет.
Ответ написан
Комментировать
Liny_li
@Liny_li
Возможно, это подойдет:
js-php.ru/web-development/distance-from-dot-to-dot
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы