Помогите, пожалуйста, может есть готовое решение — поиск ближайших точек на карте

Добрый день!

Есть таблица с координатами (lat,lon) точек.
Пользователь вводит адрес.

Необходимо вытащить из БД те точки, которые находятся на заданном в метрах расстоянии от точки, которая соответствует адресу.

Как по адресу определить точку, я понимаю, а вот с координатами на карте не работал плотно. Может быть, кто-то уже сталкивался с этим вопросом и есть решение под рукой?
  • Вопрос задан
  • 5054 просмотра
Пригласить эксперта
Ответы на вопрос 6
sajgak
@sajgak
Про диагонали квадрата слышали? Все делается в течении 10 минут. Интереснее задачка, когда тебе нужно найти ближайшее место от точки, при том, что не указано максимальная длина поиска и место может быть в паре тысяч километорв. А так то)
Ответ написан
@joger
Комментировать
icc
@icc
tvsh2004.narod.ru/geo_koor.htm
Сначала хотел формулы Вам набрать, а потом хорошую ссылку с картинками нашел. Но я так понял Вам нужно с точностью до метров, тогда стандартная формула (в которой Земля считается сферой) может по точности не подойти.

Кратчайшее расстояние между двумя точками на земной поверхности (если принять ее за сферу) определяется зависимостью: cos(d) = sin(φА)·sin(φB) + cos(φА)·cos(φB)·cos(λА − λB),
где φА и φB — широты, λА, λB — долготы данных пунктов, d — расстояние между пунктами, измеряемое в радианах длиной дуги большого круга земного шара.
Расстояние между пунктами, измеряемое в километрах, определяется по формуле: L = d·R, где R = 6371 км — средний радиус земного шара.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы