www.map-info.ru :: Просмотр темы - Запрос на пересечение объектов заданной величины
                               РќР° главную страницу сайта

 
                                
ВходВход    РегистрацияРегистрация    ПрофильПрофиль    ПользователиПользователи    ГруппыГруппы    FAQFAQ    ПоискПоиск  

 
   Список форумов www.map-info.ru | Форум - ГИС 'MapInfo' Добавить ответ
Предыдущая тема :: Следующая тема  
Автор Сообщение
АВ



Зарегистрирован: 02.07.2009
Сообщения: 31

СообщениеДобавлено: Вт Июл 05, 2011 10:17 am    Заголовок сообщения: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

Подскажите пожалуйста как правильно составить запрос в MapInfo, который бы выявлял все пересекающиеся объекты таблицы, причем величина пересечения была бы больше заданной (например 0,1м).
Заранее спасибо
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



Зарегистрирован: 01.11.2010
Сообщения: 51

СообщениеДобавлено: Чт Июл 07, 2011 12:25 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

в силу особенностей диалекта sql, используемого в MI, такой запрос (именно как запрос) составить невозможно
но задачка вполне решается с помощью элементарного программирования в MB
ну, еще можно, наверное, попользоваться инструментом проверки топологии или серией штатных опреаций MI (заранее нельзя сказать - надо на данные глянуть)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АВ



Зарегистрирован: 02.07.2009
Сообщения: 31

СообщениеДобавлено: Пт Июл 08, 2011 1:14 pm    Заголовок сообщения: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

Объекты представляют собой полигоны (земельные участки). Часть из них пересекаются незначительно (в пределах погрешности), а часть имеют значительные пересечения. Именно их необходимо выявить. Имеется запрос, с помощью которого можно выбрать объекты площадь наложения которых больше (меньше) заданной величины. Но он не может помочь, так как площадь наложения на большой длине может быть значительной тогда как величина пересечения всего 1мм.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



Зарегистрирован: 01.11.2010
Сообщения: 51

СообщениеДобавлено: Пн Июл 11, 2011 5:04 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

"Имеется запрос, с помощью которого можно выбрать объекты площадь наложения которых больше (меньше) заданной величины."

Хотелось бы увидеть такой запрос...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АВ



Зарегистрирован: 02.07.2009
Сообщения: 31

СообщениеДобавлено: Пн Июл 11, 2011 8:47 am    Заголовок сообщения: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

Запрос на пересчение объектов по площади заданной величины выглядит следующим образом
Select * from A, B where A.obj Intersects B.obj and (Area(Overlap( A.obj, B.obj ),"sq m") < 1).
Подробно см. мой вопрос от 02.07.09
Запрос нормально работает.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Андрей Могильный



Зарегистрирован: 21.03.2006
Сообщения: 864

СообщениеДобавлено: Пн Июл 11, 2011 1:00 pm    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

Первое условие попробуйте переписать аналогочно второму, используя функцию
IntersectNodes - возвращает полилинию, имеющую узлы в точках пересечения. Нужно выставить условие на длину этой линии.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
АВ



Зарегистрирован: 02.07.2009
Сообщения: 31

СообщениеДобавлено: Пн Июл 11, 2011 2:06 pm    Заголовок сообщения: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

Не понял как это сделать. Можно объяснить на примере
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



Зарегистрирован: 01.11.2010
Сообщения: 51

СообщениеДобавлено: Пн Июл 11, 2011 2:09 pm    Заголовок сообщения: Re: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

АВ писал(а):
Запрос на пересчение объектов по площади заданной величины выглядит следующим образом
Select * from A, B where A.obj Intersects B.obj and (Area(Overlap( A.obj, B.obj ),"sq m") < 1).
Подробно см. мой вопрос от 02.07.09
Запрос нормально работает.


Конечно он будет нормально работать, особенно если учесть, что он не соответствует условиям в "мой вопрос от 02.07.09"
Вы уж нормально описывайте задачу.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
АВ



Зарегистрирован: 02.07.2009
Сообщения: 31

СообщениеДобавлено: Пн Июл 11, 2011 2:50 pm    Заголовок сообщения: Запрос на пересечение объектов заданной величины Добавить ответ со ссылкой на данный текст

Я написал ранее, что этот запрос помочь не может, но вы захотели егоувидеть. Я и показал вам. При чем здесь "вы уж нормально описывайте ситуацию"? Вопрос изначально ставился на конкретную величину пересечения в метрах, а не в кв. метрах
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
SergS



Зарегистрирован: 01.11.2010
Сообщения: 51

СообщениеДобавлено: Ср Июл 13, 2011 9:11 am    Заголовок сообщения: Добавить ответ со ссылкой на данный текст

я захотел увидеть запрос, следующий из первого поста - отбирающий перекрывающиеся объекты из одной таблицы (согласитесь, это именно так звучало) - думаю, неужели кому-то удалось - увы, чуда не случилось Smile
Что касается второго, функция IntersectNodes() вам скорее всего не поможет - вам ведь надо оценить максимальную величину (ширину) перекрытия объектов? IntersectNodes() вернет все, что угодно, но не это.

Потому я и написал что такую задачу (если я правильно все понял) одним запросом решить невозможно.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
   Список форумов www.map-info.ru | Форум - ГИС 'MapInfo' Добавить ответ
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Top.Mail.Ru