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

65SUPRU

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

Оператор Create Cartographic Legend

Оператор Create Cartographic Legend

Create Cartographic Legend

[ From Window map_window_id ] [ Behind ]

[ Position ( x , y ) [ Units paper_units ] ] [ Width win_width [ Units paper_units ] ]

[ Height win_height [ Units paper_units ] ] [ Window Title { legend_window_title }

[ ScrollBars { On | Off } ]

[ Portrait | Landscape | Custom ]

[ Default Frame Title { def_frame_title } [ Font... ] } ]

[ Default Frame Subtitle { def_frame_subtitle } [ Font... ] } ] [ Default Frame Style { def_frame_style } [ Font... ] } ]

[ Default Frame Border Pen [ [ pen_expr ]

Frame From Layer { map_layer_id | map_layer_name

[ Using

[ Column { column | object } ]

[ Label { expression | default } ]

[ Position ( x , y ) [ Units paper_units ] ] [ Title { frame_title [ Font... ] }

[ SubTitle { frame_subtitle [ Font... ] } ] [ Border Pen pen_expr ]

[ Style [ Font...] [ Norefresh ]

[ Text { style_name } { Line Pen... | Region Pen... Brush... | Symbol Symbol... } | Collection [Symbol ...] [ Line Pen ... ] [ Region Pen... Brush ...] } ]

Предложение Style и ключевое слово NoRefresh позволяют создавать собственные разделы, которые не будут перерисовываться при обновлении легенды. Если ключевое слово NoRefresh используется в предложении Style, то таблица не проверяется на предмет стилей. Вместо этого предложение Style будет содержать Ваш собственный список определений для стилей, используемых в разделе легенды. Это делается с предложением Text и соответствующими предложениями Line, Region или Symbol. Объекты типа "группа точек" здесь определяются как точечные объекты.

Объекты типа "коллекция" обрабатываются отдельно. При создании легенды на основе типов объектов сначала обрабатываются точки, потом линии, затем полигоны. Коллекции прорисовываются последними. Внутри коллекции рисуются образцы точек, линий и полигонов.

317

Функция ObjectInfo( )

Функция ObjectInfo( )

Функция ObjectInfo() также поддерживает следующие типы объектов:

Группа точек

Атрибут

Возвращаемое значение

1 OBJ_INFO_TYPE Короткое целое, тип объекта. Возвращаемое значение для группы точек ( это 11

2 OBJ_INFO_SYMBOL

Стиль символа.

11 OBJ_INFO_NONEMPTY Логическое, возвращает TRUE, если объект группа точек содержит узлы, FALSE ( если объект пустой.

Настройки атрибута Возвращаемое значение

20 OBJ_INFO_NPNTS Целое, определяющее число узлов в группе точек.

Коллекция

1 OBJ_INFO_TYPE Короткое целое, определяющее тип объекта. Возвращаемое значение для коллекции ( это 12.

8 OBJ_INFO_REGION Вîзвращает значение соответстâующее полигонам, входящим в коллекцию. Если коллекция не содержит полигонов, будет возвращен пустой полигон. Этот запрос действует только для объектов типа "коллекция".

9 OBJ_INFO_PLINE Вîзвращает значение соответстâующее полилиниям, входящим в коллекцию. Если коллекция не содержит полилиний, будет возвращен пустàÿ полилиния. Этот запрос действует только для объектов типа "коллекция".

10 OBJ_INFO_MPOINT Вîзвращает значение соответстующее группам точек, входящим в коллекцию. Если коллекция не содержит групп точек, будет возвращенà пустая группа точек. Этот запрос действует только для объектов типа "коллекция".

имеет узлы, FALSE ( если объект пустой.

318

Функция ObjectGeography( )

Функция ObjectGeography( )

Функция ObjectGeography() расширена поддержкой групп точек и коллекций. Оба типа поддерживают атрибуты 1 ( 4 (координаты минимального описывающего объект прямоугольника (МОП).

OBJ_GEO_MINX (1) минимальная координата X МОП.

OBJ_GEO_MINY (2) минимальная координата Y МОП.

OBJ_GEO_MAXX (3) максимальная координата X МОП.

OBJ GEO_MAXY (4) максимальная координата Y МОП.

319

Функция ObjectNodeX( )

Функция ObjectNodeX( )

Назначение

Возвращает координату X указанного узла в полигоне или полилинии.

Синтаксис

ObjectNodeX( object , polygon_num , node_num ) object G это выражение для объекта.

polygon_num ( это положительное целое, определяющее, какой полигон или секция опрашиваются. Параметр игнорируется для объектов типа "группа точек" (используется для полигонов и полилиний).

node_num G это положительное целое, определяющее какой по счету узел считывается.

Возвращаемое значение

Вещественное.

Описание

Функция ObjectNodeX( ) возвращает значение координаты X указанного узла из полигона или полилинии. Она соответствует функции ObjectNodeY( ), возвращающей значение координаты Y.

Параметр polygon_num должен иметь значение 1 или более. Он указывает, какой полигон (если опрашивается регион) или какая секция (если опрашивается полилиния) будет опрошен. Вызовите функцию ObjectInfo( ) для определения номера полигона в регионе или секции в полилинии. Функция ObjectNodeX() теперь поддерживает группы точек и возвращает координату X указанного узла в этом типе объекта.

320

Функция ObjectNodeY( )

Функция ObjectNodeY( )

Назначение

Возвращает координату Y указанного узла в объекте òèïà "полигон" или "полилиния".

Синтаксис

ObjectNodeY( object , polygon_num , node_num ) object G это выражение для объекта.

polygon_num ( это положительное целое, определяющее, какой полигон или секция опрашиваются. Параметр игнорируется для групп точек (используется для полигонов и полилиний).

node_num G это положительное целое, определяющее, какой узел считывается.

321

Оператор Objects Enclose

Оператор Objects Enclose

Назначение

Создает полигоны с учетом сторон других полигонов и полилиний; соответствует команде MapInfo "Замкнуть".

Синтаксис

Objects Enclose

[ Into Table tablename] [ Region ]

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

Описание

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

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

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

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

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

Как уже отмечалось, в MapInfo Pro 6.5 появились новые типы объектов: группы

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

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

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

Тип объекта в

объектов

результате

 

 

 

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

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

группы точек

 

точек

 

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

линейные

полилинии

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

 

 

322

Оператор Objects Enclose

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

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

Тип объекта в

объектов

результате

 

 

 

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

замкнутые

регионы

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

 

 

скругленный

 

 

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

 

 

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

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

коллекции

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

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

 

коллекции

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

 

323

Оператор Alter Object

Оператор Alter Object

Объекты Группа точек и Коллекция

Оператор Alter Object расширен поддержкой следующих новых типов объектов. Группа точек: устанавливает символ группы точек , как показано ниже:

Alter Object obj_variable_mpoint

Info OBJ_INFO_SYMBOL, NewSymbol

Коллекция: Используя оператор Alter Object с предложением Info, можно переустановить части коллекции (регион, полилиния или группа точек) внутри объекта "коллекция". Предложение Info позволяет видоизменять те же атрибуты, которые Вы можете запрашивать через функцию ObjectInfo( ). Например, можно определить часть регионов объекта коллекция вызîвом функции ObjectInfo( ):

Dim ObjRegion As Object

ObjRegion = ObjectInfo(Selection.obj, OBJ_INFO_REGION)

Таким образом, следующий оператор Alter Object позволяет переустановить часть регионов, входящих в коллекцию:

Alter Object obj_variable_name

Info OBJ_INFO_REGION, ObjRegion

Внимание: Вы используете тот же самый код ( OBJ_INFO_REGION) и в функции

ObjectInfo( ) и в операторе Alter Object.

К оператору Alter Object добавлена поддержка, позволяющая вставлять и удалять узлы из объектов типа "группа точек".

Alter Object obj Node .

Чтобы вставить узлы в группу точек:

Dim mpoint_obj as object

Create Multipoint Into Variable mpoint_obj 0

Alter Object mpoint_obj Node Add (0,1)

Alter Object mpoint_obj Node Add (2,1)

Внимание: Узлы для группы точек всегда добавляются в конец таблицы. Чтобы удалить узлы из группы точек:

Alter Object mpoint_obj Node Remove Position polygon_num, node_num mpoint_obj G объект типа "группа точек".

polygon_num ( игнорируется для группы точек, рекомендуется установить значение 1.

node_num ( число удаляемых узлов. Чтобы установить точки внутри группы точек:

Alter Object mpoint_obj Node Set Position polygon_num, node_num (x,y) mpoint_obj G объект типа "группа точек".

polygon_num ( игнорируется для группы точек, рекомендуется установить значение 1.

node_num ( число узлов, которые будут изменены.

(x,y) ( новые координаты узла node_num.

324

Оператор Objects Check

В новой версии также можно определять замкнутые области, не являющиеся полигонами ( для этой цели используется оператор Objects Check.

Objects Check From tablename

[SelfInt [Symbol Clause] ]

[Overlap [Pen Clause] [Brush Clause] ]

[Gap Area [Unit Units] [Pen Clause] [Brush Clause] ] ]

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

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

Пустоты выделяются и превращаются в полигоны, линии границ и заливка которых определяются предложениями Pen è Brush, следующими за ключевым словом Gap. По умолчанию, эти полигоны изображаются с синей заливкой и тонкой черной границей.

Пример

Этот пример запускает оператор Objects Check для таблицы "TestFile" и сохраняет результат в таблице "DumpFile". В операторе применяется параметр Overlap и изменяются стандартные стили точечных и площадных объектов.

objects check from TestFile into table Dumpfile Overlap SelfInt Symbol (67, 16711680, 28)

Overlap Pen (1,2,0) Brush (2, 16776960,0)

Gap 100000 Units "sq mi" Pen (1,2,0) Brush (2,255,0)

325

Новые форматы для оператора Save Window

Новые форматы для оператора Save Window

Save Window window_id

 

As filespec

 

Type filetype

 

[ Width image_width [ Units paper_units ]

]

[ Height image_height [ Units paper_units ]

]

[ Copyright notice [ Font ... ] ]

 

window_id G это целое, идентификатор окна, представляющий окна Карты, Отчета, Графика, Статистики, Информации и Линейки; чтобы получить идентификатор окна ID, вызовите функцию FrontWindow( ) или WindowID( ).

filespec G строка, имя создаваемого файла.

filetype G строка, формат файла:

"BMP" ( формат Bitmap;

"WMF" ( формат Windows Metafile;

"JPEG" ( формат JPEG;

"PNG" ( формат Portable Network Graphics;

"TIFF" ( формат TIFF;

"TIFFCMYK" ( формат TIFF CMYK

"PSD" ( формат Photoshop 3.0;

"EMF" ( формат Windows Enhanced Metafile.

326

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