Forum Webscript.Ru
Программирование => Теория, алгоритмы и стандарты => Тема начата: Error202 от 07 Сентября 2008, 15:25:34
-
Можно ли определить какие населенные пункты находятся в определенном радиусе от определенных координат?
Имеется: База всех населенных пунктов с координатами...
Например:
Входные данные: Москва, радиус 150км...
Выходные данные:
Москва
Дмитров
Королев
Мытищи
Пушкино
Талдом
Химки
...
-
Перво-наперво, привязать всё множество населённых пунктов к координатной сетке.
Для нахождения искомого подмножества выбрать населённые пункты, удовлетворяющие условию
150^2 >= (x0 - x1)^2 + (y0 - y1)^2
-
СУПЕР!!! СПАСИБО!!!
Осталось только теперь придумать, как из MySQL выбрать населённые пункты, удовлетворяющие этому условию... :(
-
Ну так из MySQL можно выбрать те, у которых x0 - 150 <= x <= x0 +150 и y0 - 150 <= y <= y0 +150, а потом к полученному подмножеству применить наше условие. :)
-
да не в принципе можно и в транзакцию уложить, или функцию написать или процедуру если возможно, смотря какой мускл
можно либо в тмп таблицу сохранить рассчет справа от знака сравнения и потом из нее выборку сделать если это разовый рассчет.
Либо, учитывая что эти данные никогда не меняются, ввести в таблицу поле удаление_от_москвы, одной транзакцией уложить в это поле значения. и потом уже его использовать.
-
ввести в таблицу поле удаление_от_москвы
А если требуется находить удаление от произвольного города?
-
Ну так из MySQL можно выбрать те, у которых x0 - 150 <= x <= x0 +150 и y0 - 150 <= y <= y0 +150, а потом к полученному подмножеству применить наше условие. :)
Не вижу никаких проблем, делай выборку и проверяй. Ключевые параметры ты же знаешь изначально, а далее дело техники. В зависимости от версии MySQL можно и часть задач в SQL запрос оставить)