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

Оператор Objects Check

Оператор Objects Check

Назначение

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

Синтаксис

Objects Check From tablename

[ Into Table tablename] [Overlap]

[Symbol Clause] [Pen Clause] [Brush Clause]

Описание

Objects Check будер проверять таблицу, указанную предложением From на предмет различных некорректных данных. Проверке подлежат только объекты типа регионов. Регионы будут проверяться на предмет самопересечения.

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

При работе этого оператора, в обнаруженных местах самопересечения создаются точечные объекты, которые помещаются в выходящую таблицу. Выходящая таблица может быть задана предложением Into Table. Если предложения Into Table нет, то выходящие данные помещаются в ту же таблицу, где и исследуемые данные. Точечные объекты оформлены в стиле, указанном в Symbol Clause. По умолчанию, это красная булавка размером 28.

Многие карты регионов должны не иметь наложения граничащих друг с другом объектов, например штатов или областей. Предложение Overlap будет проверять таблицу на предмет обнаружения наложения регионов. Из областей наложения формируются полигоны, которые помещаются в выходящую таблицу. Эти полигоны будут создаваться с использованием предложения Brush Clause определяющего заливку полигона и предложения Pen Clause, представляющего границу полигона. Стандартные цвета - желтая заливка и тонкая черная граница.

Пример

В этом примере запускается Objects Check для проверки таблицы TestFile и результат сохраняется в таблице DumpFile. Будет определен параметр наложения и изменены стили для Point и Polygon.

objects check from TestFile into table Dumpfile Overlap Point_Symbol_Clause = ”Symbol (67, 16711680, 28)” Polygon_Symbol_Clause = ”Brush (2, 16776960, 0)”

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

Objects Enclose

370

Справочник MapBasic

Оператор Objects Clean

Оператор Objects Clean

Назначение

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

Синтаксис

Objects Clean From tablename [Overlap]

[Gap Area [Unit Units] ]

Описание

Объекты из исходной tablename проверяются на предмет топологической корректности, например, самопересечений, наложения и пустот. Самопересекающиеся полигоны в форме "восьмерки" будут превращены в два полигона, соприкасающихся в общей вершине. Полигоны, содержащие острые выступы, подвергаются обработке, при которой часть таких выступов удаляется. Подвергнутый коррекции объект будет помещен вместо исходного объекта.

Если включено ключевое слово Overlap, то области наложения полигонов друг на друга удаляются из полигонов. Часть перекрытия будет удалена из всех перекрывающихся полигонов, кроме того, у которого наибольшая площадь.

Пустоты (пустоты) 0 это замкнутые области, в которых нет объектов. В таблице с границами, полигоны должны иметь общие границы. Здесь не должно быть перекрытия полигонов и не должно быть брешей между полигонами. В некоторых случаях пустоты между полигонами имеют смысл и право на существование. Например, Великие озера на карте мира являются лежат между Канадой и США (однако не включаются в какой0либо штат США или провинцию Канады). Тем не менее, большинство пустот является результатом плохого согласования общих границ между полигонами. Такие бреши обычно имеют малые размеры.

Чтобы успешно отделить допустимые пустоты, такие как Великие озера, от мелких, ненужных брешей, используется предложение Area. Любые пустоты больше некоторого заданного размера будут оставляться без изменения. Единицы измерения площади предельной бреши Area задаются предложением Units. Если подпредложение Units не задано, то площадь брешей Area будет измеряться в текущих единицах измерения MapBasic.

Пустоты будут удалены путем их объединения с соседним полигоном, причем именно тем, у которого площадь больше.

Чтобы иметь представление об использовании предложения Area, посмотрите использование команды Objects Check. Величина Gaps в команде Objects Check действует аналогично команде "Коррекция топологии" из MapInfo.

Пример

Open Table "STATES.TAB" Interactive

Map From STATES

 

Set Map Layer 1

Editable On

select * from STATES

Objects Clean From Selection Overlap Gap 10 Units "sq m"

Справочник MapBasic

371

Оператор Objects Clean

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

Оператор Objects Create

Опетратор Objects Disaggregate

Оператор Objects Check

372

Справочник MapBasic

Оператор Objects Combine

Оператор Objects Combine

Назначение:

Объединяет объекты в таблице так, как это делает команда ОБ ЕКТЫ > КОМБИНАЦИЯ.

Синтаксис:

Objects Combine

[ Into Target ]

[ Data column = expression [ , column = expression ... ] ]

где

column – имя колонки в таблице.

Описание:

Оператор Objects Combine создает объект, представляющий собой географическое объединение выбранных объектов. С помощью оператора Objects Combine можно также обобщать данные, вычислять суммы и средние значения величин из записей, к которым присоединены объекты.

Оператор Objects Combine соответствует команде MapInfo ОБ ЕКТЫ > КОМБИНАЦИЯ. Если Вы в MapInfo выполните команду и при этом будет открыто окно MapBasic, то в протоколе выполненных действий будет использован оператор Objects Combine. Описание выполняющейся операции смотрите в описании команды в документации MapInfo.

Предложение Into Target

Это предложение используется, если выбран изменяемый объект (с помощью оператора Set Target) и если изменяемый объект один.

Если в операторе есть предложение Into Target, то MapInfo будет комбинировать изменяемый объект с выбранными объектами на Карте. Объект, полученный в результате комбинирования, заменит изменяемый объект в таблице.

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

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

Если Вы не используете предложение Into Target, то MapInfo комбинирует только выбранные объекты без использования изменяемого объекта, если он назначен. Выбранные объекты и соответствующие им строки в таблице удаляются, новая строка с объектом, полученным в результате комбинирования, добавляется в конец таблицы.

Предложение Data

Предложение Data управляет обобщением данных. Информация об обобщении данных приводится в описании команды ОБ ЕКТЫ > КОМБИНАЦИЯ в Руководстве пользователя MapInfo. За ключевым словом Data должен следовать список определений через запятую. Каждое определение является выражением, по которому будет вычислено (или изменено) значение в определенной колонке для записи, которая будет получена в результате выполнения оператора Objects Combine. Вычисления или изменения должны производиться в соответствии с типом колонки (численным, строковым и т. п.)

Следующая таблица приводит некоторые варианты определений для колонки:

Справочник MapBasic

373

Оператор Objects Combine

Выражение

Описание

 

 

col_name = col_name

Содержимое колонки не меняется.

col_name = value

MapBasic помещает значение value в

 

поле записи объекта, полученного в

 

результате.

col_name = Sum(col_name)

col_name = Avg(col_name)

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

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

col_name = WtAvg(col_name, wt_col_name)

Используется только для численных колонок. MapBasic помещает взвешенное среднее число из значений колонки col_name из всех записей объектов, участвующих в комбинации, в поле записи объекта, полученного в результате. В качестве коэффициентов веса используются значения из колонки wt_col_name.

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

Если предложения Data нет в операторе, но используется предложение Into Target, то MapInfo сохранит значения изменяемого объекта в записи.

Если в операторе не используется ни предложение Data, ни предложение Into Target, то результирующий объект будет помещен в новую строку и MapInfo разместит нулевые и пустые значения в поля этой записи.

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

Combine( ), Set Target

374

Справочник MapBasic

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