Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
АВ
Зарегистрирован: 02.07.2009 Сообщения: 31
|
Добавлено: Пт Авг 26, 2011 11:03 am Заголовок сообщения: Поиск записей, у которых по нескольку контуров |
|
|
Здравствуйте! Подскажите пожалуйста, как легче всего в общей куче площадных объектов найти только те, которые имеют по несколько контуров? |
|
Вернуться к началу |
|
|
АВ
Зарегистрирован: 02.07.2009 Сообщения: 31
|
Добавлено: Пн Авг 29, 2011 12:45 pm Заголовок сообщения: Поиск записей, у которых по нескольку контуров |
|
|
Нежели нет такого способа? |
|
Вернуться к началу |
|
|
Alex_47
Зарегистрирован: 01.07.2009 Сообщения: 66 Откуда: Н.Новгород
|
Добавлено: Вт Авг 30, 2011 9:06 pm Заголовок сообщения: |
|
|
Все что удалось придумать:
select * from участки where Val(str$(ObjectInfo(obj , 21)))>1 into Selection |
|
Вернуться к началу |
|
|
АВ
Зарегистрирован: 02.07.2009 Сообщения: 31
|
Добавлено: Пн Сен 05, 2011 12:07 pm Заголовок сообщения: Поиск записей, у которых по нескольку контуров |
|
|
Спасибо. Запрос работает, но вместе с тем в выборку также попадают и объекты, у которых есть внутренние контура. У них тоже получается по два и более контуров. Можно ли поставить условие на их отсечение из выборки? |
|
Вернуться к началу |
|
|
Alex_47
Зарегистрирован: 01.07.2009 Сообщения: 66 Откуда: Н.Новгород
|
Добавлено: Вт Сен 06, 2011 3:39 pm Заголовок сообщения: |
|
|
Можно, но не настолько просто. Придется перебирать каждый объект и проверять каждый контур внутренний ли он или нет. |
|
Вернуться к началу |
|
|
АВ
Зарегистрирован: 02.07.2009 Сообщения: 31
|
Добавлено: Вт Сен 06, 2011 4:16 pm Заголовок сообщения: Поиск записей, у которых по нескольку контуров |
|
|
А в автоматическом режиме? |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Вт Сен 06, 2011 5:11 pm Заголовок сообщения: |
|
|
С помощью запроса - нет. Только MapBasic-код. |
|
Вернуться к началу |
|
|
АВ
Зарегистрирован: 02.07.2009 Сообщения: 31
|
Добавлено: Ср Сен 07, 2011 7:12 am Заголовок сообщения: Поиск записей, у которых по нескольку контуров |
|
|
Как это сделать? |
|
Вернуться к началу |
|
|
reasonat
Зарегистрирован: 01.07.2009 Сообщения: 224 Откуда: Екатеринбург
|
Добавлено: Чт Сен 08, 2011 11:17 am Заголовок сообщения: |
|
|
Если в карте точно нет таких объектов, у которых внутри внешнего контура дырка, а внутри дырки еще контур - остров, тогда:
*для каждого объекта перебрать его контуры, если их > 1,
*вычислить для каждого контура направление обхода границы (проще всего посчитать площадь по координатам узлов контура - отрицательное значение вроде должно быть для внешней границы, если она нарисована по ЧС и положительное значение для дырки, потому что она будет против ЧС)
*если окажется, что в сложном объекте есть контуры с одинаковым (отрицательным) знаком площади, то это отдельные контуры. Если для объекта нашлись только дырки (с обратным направлением обхода относительно первого контура), значит у него нет чересполосных контуров.
Для острова внутри дырки может оказаться направление обхода и знак площади такой же как для первого внешнего контура. Тут сложней. |
|
Вернуться к началу |
|
|
|