Поиск ближайших точек на карте

Всем привет.

Есть большая база людей, двигающихся по карте, у каждого записана широта и долгота. Задача: быстро получить ближайших к заданной точке людей с сортировкой по расстоянию. Решение в лоб — брать ограниченный по координатам прямоугольник и обсчитывать расстояние до каждого человека в нем, но оно слишком уж в лоб.

Подскажите алгоритмы / инструменты / материалы на почитать.
  • Вопрос задан
  • 5045 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Prescott Автор вопроса
Пользователь Azy дал ссылку на исчерпывающий ответ: www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

Спасибо!
Ответ написан
Комментировать
smagen
@smagen
Руководитель разработки Postgres Professional
Советую также посмотреть поиск ближайших соседей в GiST индексах PostgreSQL начиная с версии 9.1. Там всё сделано куда более естественно с точки зрения пользователя.
А вообще если точки очень часто перемещаются по карте, то я бы посоветовал не пользоваться функциями СУБД, а просто построить какой-нибудь Quad-tree в памяти и искать по нему.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект