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

Функция Labelinfo( )

Функция Labelinfo( )

Назначение:

Возвращает информацию о подписи на Карте.

Синтаксис:

Labelinfo( map_window_id , layer_number , attribute )

map_window_id – целочисленный индекс окна id, определяющий окно Карты; layer_number – номер слоя в текущем окне Карты (например, 1 для верхнего слоя); attribute – код, указывающий тип возвращаемой информации, см. таблицу ниже.

Величина, полученная в результате:

Тип результата зависит от значения параметра attribute.

Описание:

Функция Labelinfo( ) возвращает информацию о подписи в окне Карты. Обратите внимание на то, что подписи отличаются от текстовых объектов. Для запроса текстовых объектов используйте функции ObjectInfo( ) или ObjectGeography( ).

Перед вызовом Labelinfo( ) Вы должны инициализировать внутренний указатель подписей MapBaL sic, используя функции LabelFindFirst( ), LabelFindNext( ) или LabelFindByID( ). Смотрите пример ниже.

Параметр attribute должен быть одним из кодов, которые приведены в следующей таблице; коды определены в MAPBASIC.DEF.

коды attribute

Величина, полученная в результате действия

 

Labelinfo( )

 

 

LABEL_INFO_ANCHORX

Величина типа Float, указывает XLкоординату места

 

привязки подписи.

LABEL_INFO_ANCHORY

Величина типа Float, указывает YLкоординату места

 

привязки подписи.

LABEL_INFO_DRAWN

Логическая величина; “Да” (TRUE) если подпись в

 

текущий момент видима.

LABEL_INFO_EDIT

Логическая величина; “Да” (TRUE) если подпись

 

редактировалась.

LABEL_INFO_EDIT_ANCHOR

Логическая величина; “Да” (TRUE) если подпись

 

переместилась.

LABEL_INFO_EDIT_ANGLE

Логическая величина; “Да” (TRUE) если угол наклона

 

подписи изменился.

LABEL_INFO_EDIT_FONT

Логическая величина; “Да” (TRUE) если шрифт

 

подписи изменился.

LABEL_INFO_EDIT_OFFSET

Логическая величина; “Да” (TRUE) если растояние в

 

точках от подписи до места прикрепления изменилось.

LABEL_INFO_EDIT_PEN

Логическая величина; “Да” (TRUE) если стиль линии

 

указки изменился.

280

Справочник MapBasic

Функция Labelinfo( )

LABEL_INFO_EDIT_POSITION

Логическая величина; “Да” (TRUE) если позиция

 

подписи (относительно места прикрепления)

 

изменилась.

LABEL_INFO_EDIT_TEXT

Логическая величина; “Да” (TRUE) если текст

 

подписи изменился.

LABEL_INFO_EDIT_TEXTARROW

Логическая величина; “Да” (TRUE) если стрелка

 

указки подписи изменилась.

LABEL_INFO_EDIT_TEXTLINE

Логическая величина; “Да” TRUE если указка

 

переместилась.

LABEL_INFO_EDIT_VISIBILITY

Логическая величина; “Да” (TRUE) если видимость

 

подписи установлена на “Скрыть” (OFF).

LABEL_INFO_OBJECT

Возвращает текстовый объект, который практически

 

является подписью. Эта функция позволяет

 

конвертировать подпись в текстовый объект, который

 

Вы можете сохранить в постоянной таблице.

LABEL_INFO_OFFSET

Целочисленное значение от 0 до 50, показывающее

 

расстояние (в точках) от подписи до места

 

прикрепления.

LABEL_INFO_POSITION

Целочисленное значение от 0 до 8, показывающее

 

положение подписи относительно места

 

прикрепления. Величина, полученная в результате

 

соответствует одному из следующих кодов:

 

LAYER_INFO_LBL_POS_CC (0),

 

LAYER_INFO_LBL_POS_TL (1),

 

LAYER_INFO_LBL_POS_TC (2),

 

LAYER_INFO_LBL_POS_TR (3),

 

LAYER_INFO_LBL_POS_CL (4),

 

LAYER_INFO_LBL_POS_CR (5),

 

LAYER_INFO_LBL_POS_BL (6),

 

LAYER_INFO_LBL_POS_BC (7),

 

LAYER_INFO_LBL_POS_BR (8).

 

Наример, если подпись ниже и правее места

 

прикрепления, ее позиция обозначается кодом 8; если

 

подпись располагается выше и левее места

 

прикрепления, ее код будет 1.

LABEL_INFO_ROWID

Целочисленное значение, представляющее индекс ID

 

строки, в которой расположена подпись; возвращает 0,

 

если подписи не существует.

LABEL_INFO_SELECT

Логическая величина; “Да”(TRUE) если подпись

 

выбрана.

LABEL_INFO_TABLE

Строковая величина, представляющая имя таблицы, в

 

которой находится данная подпись. Используется при

 

работе с сшитой таблицей, в том случае, если Вам надо

 

узнать в какой из составляющих ее таблиц находится

 

данная подпись.

Справочник MapBasic

281

Функция Labelinfo( )

Пример:

Следующий пример показывает, как в цикле идет поиск подписи среди других подписей в определенной строке, используя функцию Labelinfo( ), запрашивающую каждую подпись.

Dim b_morelabels

As Logical

Dim i_mapid, i_layernum As Integer

Dim obj_mytext

As Object

В

этом месте

Вы присваиваете окну Карты ID индекс i_mapid,

и

присваиваете

слою номер i_layernum.

b_morelabels = LabelFindFirst(i_mapid, i_layernum, TRUE)

Do While b_morelabels

obj_mytext = LabelInfo(i_mapid, i_layernum, LABEL_INFO_OBJECT)

’ В этом месте

Вы

можете

сохранить объект obj_mytext

в постоянной

таблице;

или можете запросить его,

вызывая функции

ObjectInfo() или

ObjectGeography().

b_morelabels =

LabelFindNext(i_mapid,

i_layernum)

Loop

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

LabelFindByID( ), LabelFindFirst( ), LabelFindNext( )

282

Справочник MapBasic

Функция LayerInfo( )

Функция LayerInfo( )

Назначение:

Возвращает информацию о слое в окне Карты.

Синтаксис:

LayerInfo(mapper_window_id, layer_number, attribute )

где

mapper_window_id – идентификатор окна Карты;

layer_number – номер слоя (1 – самый верхний слой); чтобы определить номер слоя в окне Карты, обратитесь к функции MapperInfo( ).

attribute – целочисленный код.

Величина, полученная в результате:

Тип величины зависит от значения attribute.

Предупреждение:

Многие коды в функции LayerInfo( ) используются только для "нормальных" слоев Карты, то есть функция не всегда применима к Косметическому слою, тематическому слою (слою, содержащему результат условного выделения) и слою с растровыми изображениями.

Описание:

Функция LayerInfo( ) возвращает информацию об определенном слое в окне Карты mapper_window_id. Параметр layer_number задает слой на карте (0 – Косметический слой, 1 – самый верхний слой, и т. д.).

Параметр attribute должен принимать значения целочисленного кода, управляющего типом возвращаемой функцией информации. В следующей таблице в первой колонке приводятся для этих кодов имена, которые установлены в файле стандартных определений MapBasic MAPBASIC.DEF.

Справочник MapBasic

283

Функция LayerInfo( )

Значение attribute

LAYER_INFO_NAME

LAYER_INFO_EDITABLE

LAYER_INFO_SELECTABLE

LAYER_INFO_PATH

LAYER_INFO_ZOOM_LAYERED

LAYER_INFO_ZOOM_MIN

LAYER_INFO_ZOOM_MAX

LAYER_INFO_COSMETIC

LAYER_INFO_DISPLAY

LAYER_INFO_OVR_LINE

LAYER_INFO_OVR_PEN

LAYER_INFO_OVR_BRUSH

284

Результат

Строка (тип String), содержащая имя таблицы, данные которой представлены на этом слое. Если слой Косметический, то строка будет "Cosmetic1". Имя может быть использовано в следующих операторах (например, Select).

Логическая величина (тип Logical), показывающая, изменяем ли слой или нет.

Логическая величина (тип Logical), показывающая, доступен ли слой или нет.

Строка (тип String), содержащая DOSLмаршрут, по которому находится файл таблицы, данные которой представлены на этом слое.

Логическая величина (тип Logical), показывающая, применяется ли масштабный эффект для данного слоя.

Число (тип Float), минимальный порог для масштабного эффекта (в текущих в MapBasic единицах измерения расстояний). Для установки единиц измерения расстояний используется оператор Set Dis4 tance Units.

Число (тип Float), максимальный порог для масштабного эффекта.

Логическая величина (тип Logical). "Да" (TRUE), если данный слой косметический.

Целочисленный код (тип SmallInt), говорящий, как показывается слой: LAYER_INFO_DISPLAY_OFF LAYER_INFO_DISPLAY_GRAPHIC LAYER_INFO_DISPLAY_GLOBAL LAYER_INFO_DISPLAY_VALUE

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

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

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

Справочник MapBasic

Функция LayerInfo( )

LAYER_INFO_OVR_SYMBOL

LAYER_INFO_OVR_FONT

LAYER_INFO_LBL_CURFONT

LAYER_INFO_LBL_FONT

LAYER_INFO_LBL_EXPR LAYER_INFO_LBL_LT

LAYER_INFO_LBL_PARALLEL

LAYER_INFO_LBL_POS

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

Стиль шрифта, используемый для отображения текстовых объектов.

Логическая величина.

Вприложениях, откомпилированных с MapBasic версии 4.0 результат всегда будет “Нет”.

Вприложениях, откомпилированных с MapBasic версии 3.x, результатом будет:

"Да" (TRUE), если слой использует текущую установку для стиля шрифта, или "Нет" (FALSE), если слой использует специальную установку для стиля

шрифта (смотрите LAYER_INFO_LBL_FONT).

Стиль шрифта для подписей.

Строка с текстом подписи.

Целочисленный код (тип SmallInt), показывающий, какой тип указки используется: LAYER_INFO_LBL_LT_NONE, если указки нет, LAYER_INFO_LBL_LT_SIMPLE, если указка является простой линией, LAYER_INFO_LBL_LT_ARROW, если указка является линией со стрелкой.

Логическая величина: "Да" (TRUE), если на слое разрешено поворачивать подписи.

Целочисленный код (тип SmallInt), показывающий ориентацию подписи (литера T обозначает верх, литера B – низ, C – центр, R – право, L – лево): LAYER_INFO_LBL_POS_TL LAYER_INFO_LBL_POS_TC LAYER_INFO_LBL_POS_TR LAYER_INFO_LBL_POS_CL LAYER_INFO_LBL_POS_CC LAYER_INFO_LBL_POS_CR LAYER_INFO_LBL_POS_BL LAYER_INFO_LBL_POS_BC LAYER_INFO_LBL_POS_BR

Справочник MapBasic

285

Функция LayerInfo( )

LAYER_INFO_LBL_VISIBILITY

LAYER_INFO_LBL_ZOOM_MIN

LAYER_INFO_LBL_ZOOM_MAX

LAYER_INFO_LBL_AUTODISPLAY

LAYER_INFO_LBL_OVERLAP

LAYER_INFO_LBL_DUPLICATES

LAYER_INFO_LBL_OFFSET

LAYER_INFO_LBL_MAX

LAYER_INFO_ARROWS

LAYER_INFO_NODES

LAYER_INFO_CENTROIDS

286

Целочисленная величина, типа Smallint, соответствующая режиму показа подписей на слое (смотрите предложение Visibility оператора Set Map). Результатом будет один из следующих кодов: LAYER_INFO_LBL_VIS_ON, если подписи на слое видимы;

LAYER_INFO_LBL_VIS_OFF, если подписи на слое невидимы;

LAYER_INFO_LBL_VIS_ZOOM, если подписи видимы в результате масштабного эффекта.

Действительная величина (тип Float), минимальное значение показа подписей при масштабном эффекте.

Действительная величина (тип Float), максимальное значение показа подписей при масштабном эффекте.

Логическая величина: TRUE, если слой подписывается автоматически. Смотрите предложение Auto оператора

Set Map.

Логическая величина: "Да" (TRUE), если позволяется пересечение подписей.

Логическая величина: "Да" (TRUE), если позволяется дублирование подписей.

Целочисленная величина типа Smallint о 0 до 50, смещение от подписи до центроида подписываемого объекта в точках.

Целочисленная величина типа Integer, максимальное число подписей, разрешенное для этого слоя. Если такое число не назначено, то возвращается число 2 147 483 647.

Логическая величина: "Да" (TRUE), если в линейных объектах используется стрелка.

Логическая величина: "Да" (TRUE), если показываются узлы объектов слоя.

Логическая величина: "Да" (TRUE), если показываются центроиды объектов слоя.

Справочник MapBasic

Функция LayerInfo( )

LAYER_INFO_TYPE

Пример:

Целочисленный код (тип SmallInt), показывающий тип слоя:

LAYER_INFO_TYPE_NORMAL, если слой нормальный; LAYER_INFO_TYPE_COSMETIC, если слой Косметический;

LAYER_INFO_TYPE_IMAGE, если слой растровый; LAYER_INFO_TYPE_THEMATIC, если слой тематический.

Многие коды из приведенных выше не применимы к Косметическому слою, тематическому слою и слою с растровым изображением. Функцию LayerInfo( ) с аргументом LAYER_INFO_TYPE используют для определения, каким является слой. Например:

i_lay_type = LayerInfo( map_id, layer_num, LAYER_INFO_TYPE)

If i_lay_type = LAYER_INFO_TYPE_NORMAL Then

'

' ... то это "нормальный" слой

'

End If

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

MapperInfo( )

Справочник MapBasic

287

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