Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

65SUPRU

.pdf
Скачиваний:
13
Добавлен:
13.02.2015
Размер:
6.17 Mб
Скачать

Оператор Objects Snap

используемых в объекте, сохраняя основные черты формы объекта. Субпредложение Units предложения Thin позволяет указать имя единицы измерения расстояния (например, "km" для километров) в которых измеряеòся значение Bend и Distance. Если субпредложение Units отсутствует, то значения Bend и Distance будут интерпретироваться в текущих единицах измерения MapBasic.

Значение Bend используется для управления коллинеарным отклонением группы из 3 последовательных узлов. Эти 3 узла связываются в треугольник. Измеряется перпендикуляр, опущенный из средней точки на длинную сторону треугольника. Если это расстояние меньше значения Bend, то эти три узла рассматриваются как коллинеарные и второй (средний) узел удаляется из объекта.

Расстояние Distance используется для удаления узлов из одного объекта, если узлы расположены слишком близко друг к другу. Измеряется расстояние между двумя соседними точками объекта. Если это расстояние меньше, чем Distance, то один из двух узлов будет удален.

Значение Cull Area используется для удаления избыточных полигонов, площадь которых меньше некоторого заданного значения. Субпредложение Units из предложения Cull позволяет настроить единицы измерения площади (например, "кв км" для квадратных километров), применяемые в значении Area. Если субпредложение Units отсутствует, то значение Area будет интерпретироваться в текущих единицах измерения площади MapBasic. По умолчанию MapBasic использует квадратные мили в качестве единиц измерения площади; для изменения этих единиц см. оператор Set Area Units.

Внимание: Для всех расстояний и площадей, упомянутых выше, всегда используется тип измерений на плоскости. Систему координат и проекцию всегда надо учитывать. Вычисления расстояний и площадей в Долготе/ Широте на плоскости осуществляются с невысокой точностью. Перед тем, как использовать этот оператор, убедитесь, что Вы работаете в подходящей

системе координат (декартовой).

Пример

Open Table "STATES.TAB" Interactive Map From STATES

Set Map Layer 1 Editable On select * from STATES

Objects Snap From Selection Tolerance Node 3 Vector 3 Units "mi" Thin Bend 0.5 Distance 1 Units "mi" Cull Area 10 Units "sq mi"

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

Оператор Create Object

Оператор Overlap

Оператор Objects Clean

297

Оператор Objects Clean

Оператор Objects Clean

Назначение

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

Синтаксис

Objects Clean From tablename [Overlap]

[Gap Area [Unit Units] ]

Описание

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

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

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

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

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

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

298

Оператор Objects Clean

Пример

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"

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

Оператор Objects Create

Оператор Objects Disaggregate

Оператор Objects Check

299

Создание новых типов объектов

Оператор Create MultiPoint

Оператор Create MultiPoint

Назначение

Объединяет множество точек в один объект. Все точки имеют один и тот же символ. Объект Multipoint отображается в окне Списка как одна запись.

Синтаксис:

Create Multipoint

[ Into { Window window_id | Variable var_name } ] [ num_points ]

( x1, y1) ( x2, y2) [ ... ] [ Symbol . . . ]

window_id ( идентификатор окна

var_name ( имя переменной объекта

x y ( координаты точки

Предложение Symbol определяет стиль объекта. Внимание: один символ используется для всех точек, содержащихся в объекте Multipoint.

num_points ( число точек в объекте Multipoint.

В настоящее время MapInfo Professional использует четыре варианта синтаксиса для определения символа, используемого для точек. Необходима поддержка всех этих типов для объектов Multipoint:

Синтаксис 1 (Синтаксис MapInfo 3.0 Symbol)

Symbol ( shape, color, size )

shape ( целое, имеющее значение 31 или более, определяющее, какой символ используется из стандартного набора символов MapInfo. Для создания невидимого символа используйте значение 31. Стандартный набор символов включает символы от 31 до 67, но пользователь может настроить свой собственный набор символов, используя приложение Symbol.

color ( целое, значение цвета RGB; смотрите функцию RGB( ).

size ( целое, размер символа в пунктах (точках), от 1 до 48.

Синтаксис 2 (Синтаксис TrueType Font)

Symbol ( shape, color, size, fontname, fontstyle, rotation )

shape ( целое, имеющее значение 31 или больше, определяющее, какой символ из шрифтов TrueType используется. Для создания невидимого символа используйте значение 31.

color ( это целое, значение цвета RGB; смотрите функцию RGB( ).

size G целое, размер символа в пунктах, от 1 до 48.

fontname G строка, имя шрифта TrueType (например, "Wingdings").

fontstyle ( целое, код, контролирующий атрибуты, например, курсив.

rotation ( вещественное, угол поворота символа, в градусах.

Синтаксис 3 (Синтаксис Custom Bitmap File)

Symbol ( filename, color, size, customstyle )

filename G строка длиной до 31 символа, имя файла bitmap. Файл должен находиться в папке CUSTSYMB (если не применен оператор Reload Symbols для указания другой папки).

301

Оператор Create MultiPoint

color G целое, цвет RGB; смотрите функцию RGB( ).

size ( целое, размер символа в пунктах (точках), от 1 до 48.

customstyle G целочисленный код, контролирующий цвет и атрибуты фона. См. таблицу ниже.

Синтаксис 4

Symbol symbol_expr

symbol_expr G это выражение для Symbol, которое может быть или именем переменной символа или функцией, которая возвращает значение символа, например, функцией MakeSymbol.

Пример

Create Multipoint 7 (0,0) (1,1) (2,2) (3,4) ( 1,1) (3, 2) (4,3)

302

Оператор Create Collection

Оператор Create Collection

Назначение

Объединяет точечные, линейные и площадные объекты в один объект. Коллекция показывается в окне Отчета в виде одной записи.

Синтаксис

Create Collection [ num_parts ]

[ Into { Window window_id | Variable var_name } ]

Multipoint

[ num_points ]

( x1, y1) ( x2, y2) [ ... ] [ Symbol . . . ]

Region num_polygons

[ num_points1 (x1, y1) (x2, y2) [ ... ] ]

[ num_points2 (x1, y1) (x2, y2) [ ... ] ... ] [Pen ... ]

[ Brush ... ]

[ Center ( center_x, center_y ) ]

Pline

[ Multiple num_sections ] num_points

( x1, y1) (x2, y2) [ ... ] [ Pen ... ]

[ Smooth ... ]

num_parts : число непустых частей в коллекции. Это число от 0 до 3 является дополнительным для кода MapBasic (это обязательно для MIF).

Пример

create collection multipoint 2 (0,0) (1,1) region 3 3 (1,1) (2,2) (3,4) 4 (11,11) (12,12) (13,14) (19,20) 3 (21,21) (22,22) (23,24) pline 3 ( 1,1) (3, 2) (4,3)

dim a as object

create collection into variable a multipoint 2 (0,0) (1,1) region 1 3 (1,1) (2,2) (3,4) pline 3 ( 1,1) (3, 2) (4,3)

insert into test (obj) values (a)

create collection region 2 4 ( 5, 5) (5, 5) (5,5) ( 5,5) 4 ( 3, 3) (3, 3) (3,3) ( 3,3) pline multiple 2 2 ( 6, 6) (6,6) 2 ( 6,6) (6, 6) multipoint 6 (2,2) ( 2, 2) (2, 2) ( 2,2) (4,1)

( 1, 4)

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

Оператор Create Multipoint

303

Установка стилей объектов для геокодированной таблицы

Оператор Server Create Style

Оператор Server Create Style

Назначение

Изменяет настройки стиля объекта для геокодированной таблицы. Этот оператор действует аналогично оператору Server Set Map и возвращает положительный или отрицательный результат.

Синтаксис

Server ConnectionNumber Set Map linked table...

[ Style Type style_ number (0 or 1) [ Column <column_ name>] ] connectionNumber целое число, номер соединения. linked_table имя открытой связанной CÓÁÄ таблицы

columnname имя столбца, содержащего координаты специфицированного типа.

StyleType устанавливает стиль для каждой записи. Символ и аргумент Column определяется, когда Type установлен на 1 . Когда style_number установлен на 0, то символ Column игнорируется и в Каталоге карт (MAPCATALOG) очищаются колонки исполнения (rendition columns).

Описание

Значение Column используется и задается, когда параметр Type установлен на 1. Когда style_number установлен на 0, то Column игнорируется, а в Каталоге карт (MAPCATALOG) очищаются колонки исполнения (rendition columns).

Чтобы оператор сработал правильно, Каталог карт должен иметь структуру, поддерживающую стили и должен содержать колонки RENDITIONTYPE, RENDITIONCOLUMN и RENDITIONTABLE. Команда не будет успешно выполнена, если колонки стилей не являются текстовыми. Оператор SQL сам выдаст ошибку, если попытается установить строковую величину в колонку с другими типами данных.

Пример

Server 2 Create Map For "qadb:informix.arc"

Type MICODE "mi_sql_micode" ("mi_sql_x","mi_sql_y") CoordSys Earth Projection 1, 0 ObjectType Point Symbol (35,0,12) Style Type 1 Column "mi_symbology"

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

Функция Server_Connect( )

305

Усовершенствование уже имеющихся операторов и функций

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