Автор Тема: Нас.пункту в радиусе по координатам  (Прочитано 9630 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Нас.пункту в радиусе по координатам
« : 07 Сентября 2008, 15:25:34 »
Можно ли определить какие населенные пункты находятся в определенном радиусе от определенных координат?

Имеется: База всех населенных пунктов с координатами...

Например:
Входные данные: Москва, радиус 150км...
Выходные данные:
Москва
Дмитров
Королев
Мытищи
Пушкино
Талдом
Химки
...
Космическая игрушка

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нас.пункту в радиусе по координатам
« Ответ #1 : 07 Сентября 2008, 19:51:15 »
Перво-наперво, привязать всё множество населённых пунктов к координатной сетке.

Для нахождения искомого подмножества выбрать населённые пункты, удовлетворяющие условию

 150^2 >= (x0 - x1)^2 + (y0 - y1)^2

Оффлайн Error202

  • Бесстрашный
  • Ветеран
  • *****
  • Сообщений: 540
  • +1/-0
  • 2
    • Просмотр профиля
    • http://www.tender-plus.ru
Нас.пункту в радиусе по координатам
« Ответ #2 : 07 Сентября 2008, 22:18:11 »
СУПЕР!!! СПАСИБО!!!

Осталось только теперь придумать, как из MySQL выбрать населённые пункты, удовлетворяющие этому условию... :(
Космическая игрушка

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нас.пункту в радиусе по координатам
« Ответ #3 : 08 Сентября 2008, 13:37:01 »
Ну так из MySQL можно выбрать те, у которых x0 - 150 <= x <= x0 +150 и y0 - 150 <= y <= y0 +150, а потом к полученному подмножеству применить наше условие. :)

Оффлайн ravshaniy

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 191
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нас.пункту в радиусе по координатам
« Ответ #4 : 08 Сентября 2008, 21:41:17 »
да не в принципе можно и в транзакцию уложить, или функцию написать или процедуру если возможно, смотря какой мускл

можно либо в тмп таблицу сохранить рассчет справа от знака сравнения и потом из нее выборку сделать если это разовый рассчет.

Либо, учитывая что эти данные никогда не меняются, ввести в таблицу поле удаление_от_москвы, одной транзакцией уложить в это поле значения. и потом уже его использовать.
убили кенни, сволочи

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нас.пункту в радиусе по координатам
« Ответ #5 : 22 Сентября 2008, 14:41:23 »
Цитировать
ввести в таблицу поле удаление_от_москвы


А если требуется находить удаление от произвольного города?

Оффлайн anferova.y

  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • Пол: Мужской
  • Стоматология в Реутове Профи-Дент
    • Просмотр профиля
    • Стоматология Реутова "Профи-Дент"
Re: Нас.пункту в радиусе по координатам
« Ответ #6 : 22 Сентября 2019, 08:04:10 »
Ну так из MySQL можно выбрать те, у которых x0 - 150 <= x <= x0 +150 и y0 - 150 <= y <= y0 +150, а потом к полученному подмножеству применить наше условие. :)

Не вижу никаких проблем, делай выборку и проверяй. Ключевые параметры ты же знаешь изначально, а далее дело техники. В зависимости от версии MySQL можно и часть задач в SQL запрос оставить)
Лечение зубов в Реутове - стоматология "Профи-Дент"

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28