Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Objects Disaggregate

Оператор Objects Disaggregate

Назначение

Разбивает объект на составные части.

Синтаксис

Objects Disaggregate [IntoTable name] [ All | Collection ]

[ Data column_name = expression ]

[ , column_name = expression ... ] ]

Описание

Если объект включает в себя несколько других объектов, то для каждого объект, входящего в состав основного объекта, а в итоговой таблице создается новый объект.

По умолчанию, каждый составной объект будет разделен на элементарные одиночные объекты. Регион будет разделен на некоторое число полигонов, в зависимости от того, установлен ли флаг All. Если флажок All установлен, то будет создано множество отдельных одиночных объектов0полигонов. Для островов (внутренние границы) будут созданы отдельные объекты0полигоны. Если флажок All не выставлен, то в результирующих объектах острова сохранятся. Например, если исходный регион содержит 3 полигона и один из них является островом в другом полигоне, то в результате получится 2 объекта0полигона 0 один из которых содержит остров (пустой).

Сложные полилинейные объекты будут разбиты ена отдельные полилинии, группы точек 0 на отдельные точечные объектыбудут создавать новые точечные объекты, по одному объекту для каждого узла в исходном объекте "Группа точек".

Если коллекция содержит регион, то в зависимости от переключателя All будут созданы новые объекты0полигоны; если она включает сложные полилинии, то из каждой отдельной полилинии будет создан отдельный объект; если в коллекции содержится группа точек, то будут созданы новые объекты0точки, по одной точке для каждого узла из группы. Все другие типы объектов, включая точки, линии, дуги, прямоугольники, скругленные прямоугольники и эллипсы, которые уже являются простыми объектами, этой операцией не изменяются.

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

Переключатель Collection разделяет только объекты коллекции. Если коллекция содержит регион, то этот регион на выходе станет новым объектом. Если объект коллекция содержит полилинию, то эта полилиния будет на выходе новым объектом. Если объект коллекция содержит группу точек, то эта группа точек будет на выходе новым объектом. В этом различие от опции, описанной в начале, поскольку выходящий регион может содержать несколько полигонов, выходящая сложная полилиния может содержать несколько полилиний. При использовании опции, описанной выше, группа точек не будет создана.

Справочник MapBasic

375

Оператор Objects Disaggregate

Переключатель Collection передает на выход без изменений все другие типы объектов,

включая точки, группы точек, линии, дуги, регионы, прямоугольники, скругленные

прямоугольники и эллипсы.

Если не задается Into Table, то в качестве таблицы для выходящих данных используется

текущая редактируемая таблица. Входящие для обработки командой объекты берутся из

текущей выборки.

Дополнительное предложение Data определяет, какие значения хранятся в колонках

изменяемых объектов. Предложение Data может содержать список присваеваемых значений,

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

таблице ниже:

Выражение

Действие

col_name = col_name

Не изменяет величины, хранящиеся в

 

колонке.

col_name = column_value

Хранит указанные величины в колонке.

 

Если колонка строковая, то значение тоже

 

будет строковым; если колонка числовая, то

 

значение будет числовым.

col_name = Proportion( col_name )

Используется только для числовых колонок; уменьшает число, содержащееся в колонке, пропорционально удаленной площади объекта.

Предложение Data может содержать назначения для каждой колонки в таблице. Если

предложение Data содержит назначения только для части колонок, пустые значения будут

присвоены тем колонкам, которые не поименованы в предложении Data.

Если Вы пропускаете предложение Data целиком, все колонки будут пустыми, содержащими

нулевые значения для числовых колонок и пустые значения для строковых колонок.

Пример

Open Table "STATES.TAB" Interactive Map From STATES

Set Map Layer 1 Editable On select * from STATES

Objects Disaggregate Into Table STATES

Смотрите также

Оператор ObjectsCreate

376

Справочник MapBasic

Оператор Objects Enclose

Оператор Objects Enclose

Назначение

Создает регионы, которые формируются из коллекции полилиний; соответствует команде MapInfo

"Замкнуть".

Синтаксис

Objects Enclose

[ Into Table tablename] [ Region ]

tablename это таблица, в которую надо поместить создаваемые объекты.

Описание

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

Дополнительное предложение Region будет позволять замыкать объекты (регионы, прямоугольники, скругленные прямоугольники и эллипсы), которые будут использоваться как входящие в операции Objects Enclose. Входящие полигоны будут конвертироваться в полилинии для осуществления этой операции. Получаемый результат аналогичен первичной конвертации любых замкнутых объектов в полилинии, и затем осуществится операция

Objects Enclose.

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

Функция MapBasic Combine() обновлена и позволяет производить объединение точек, групп точек и коллекций. Ранее объединяемые объекты должны были являться линейными (линии, полилинии, дуги) 0 тогда в результатом операции являлись полилинии, или замкнутыми (полигоны, прямоугольники, скругленные прямоугольники, эллипсы) 0 тогда в результате операции создавались регионы. Объединение разнородных объектов (точек, групп точек, коллекций) не допускалось. В новой версии нельзя объединять толлько текстовые объекты.

Как уже отмечалось, в MapInfo Pro 6.5 появились новые типы объектов: группы точек и коллекции, которые теперь можно использовать в операции объединения. Следующая таблица подробно отражает возможные комбинации и результат их действия:

Тип входящих объектов

Тип выходящих

Тип объекта в

объектов

результате

 

 

 

точечные или группы точек

точечные или группы

группы точек

 

точек

 

линейные (линия,

линейные

полилинии

полилиния, дуга)

 

 

Справочник MapBasic

377

Оператор Objects Enclose

Тип входящих объектов

Тип выходящих

Тип объекта в

объектов

результате

 

 

 

замкнутые (полигон,

замкнутые

регионы

прямоугольник,

 

 

скругленный

 

 

прямоугольник, эллипс)

 

 

точечные, группы точек,

точечные, группы

коллекции

линейные, замкнутые,

точек, линейные,

 

коллекции

замкнутые, коллекции

 

Пример

Будут выбраны все объекты в таблице testfile, выполнено действие Objects Enclose и сохранен результат в таблице dump_file.

select * from testfile

Objects Enclose Into Table dump_file

Смотрите также

Objects Combine, Objects Check

378

Справочник MapBasic

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]