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

Функция Map3dInfo( )

Функция Map3dInfo( )

Назначение

Возвращает свойства окна 3DКарты.

Синтаксис

Map3DInfo( window_id , attribute )

window_id это целочисленный идентификатор окна

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

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

Вещественное, Логическое или Строковое значение, в зависимости от атрибута параметра.

Описание

Функция Map3DInfo() возвращает информацию об окне 3DКарты.

Параметр window_id определяет какое окно 3DКарты опрашивается. Для получения идентификатора окна, вызовите функцию FrontWindow() немедленно после открытия окна, или вызовите функцию WindowID() в любое время после создания окна.

Есть несколькр числовых атрибутов, которые Map3DInfo() может вернуть для любого окна 3DКарты. Атрибуты параметра сообщают функции Map3DInfo() какая статистика окна Карты возвращается. Атрибут параметра должен принимать одно из следующих значений в таблице; коды определены в MAPBASIC.DEF.

Атрибуты

MAP3D_INFO_SCALE MAP3D_INFO_RESOLUTION_X MAP3D_INFO_RESOLUTION_Y MAP3D_INFO_BACKGROUND MAP3D_INFO_UNITS

MAP3D_INFO_LIGHT_X

MAP3D_INFO_LIGHT_Y

MAP3D_INFO_LIGHT_Z MAP3D_INFO_LIGHT_COLOR MAP3D_INFO_CAMERA_X MAP3D_INFO_CAMERA_Y MAP3D_INFO_CAMERA_Z MAP3D_INFO_CAMERA_FOCAL_X

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

Вещественное, масштабный фактор 3DКарты.

Целое, разрешение по X грида в окне 3DКарты.

Целое, разрешение по У грида в окне 3DКарты.

Целое, цвет фона, см. функцию RGB.

Строка, представляющая сокращение единиц измерения площади, »mi» для милей.

Вещественное, координата X источника света.

Вещественное, координата Y источника света.

Вещественное, координата Z источника света.

Целое, цвет источника, см. функцию RGB.

Вещественное, координата X камеры.

Вещественное, координата Y камеры.

Вещественное, координата Z камеры.

Вещественное, координата X фокальной точки камеры.

Справочник MapBasic

311

Функция Map3dInfo( )

MAP3D_INFO_CAMERA_FOCAL_Y

Вещественное, координата Y фокальной точки

 

камеры.

MAP3D_INFO_CAMERA_FOCAL_Z

Вещественное, координата Z фокальной точки

 

камеры.

MAP3D_INFO_CAMERA_VU_1

Вещественное, первое значение нормального вектора

 

точки просмотра.

MAP3D_INFO_CAMERA_VU_2

Вещественное, второе значение нормального вектора

 

точки просмотра.

MAP3D_INFO_CAMERA_VU_3

Вещественное, третье значение нормального вектора

 

точки просмотра.

MAP3D_INFO_CAMERA_VPN_1

Вещественное, первое значение нормального вектора

 

плоскости просмотра.

MAP3D_INFO_CAMERA_VPN_2

Вещественное, второе значение нормального вектора

 

плоскости просмотра.

MAP3D_INFO_CAMERA_VPN_3

Вещественное, третье значение нормального вектора

 

плоскости просмотра.

MAP3D_INFO_CAMERA_CLIP_NEAR

Вещественное, приближение камеры.

MAP3D_INFO_CAMERA_CLIP_FAR

Вещественное, удаление камеры.

Примеры

Распечатка штатных переменных определенных для окна 3DКарты:

 

include »Mapbasic.def»

 

Print »MAP3D_INFO_SCALE: » + Map3DInfo(FrontWindow(), MAP3D_INFO_SCALE)

 

Print »MAP3D_INFO_RESOLUTION_X: » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_RESOLUTION_X)

 

Print »MAP3D_INFO_RESOLUTION_Y: » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_RESOLUTION_Y)

 

Print »MAP3D_INFO_BACKGROUND: » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_BACKGROUND)

 

Print »MAP3D_INFO_UNITS: » + Map3DInfo(FrontWindow(), MAP3D_INFO_UNITS)

 

Print »MAP3D_INFO_LIGHT_X : » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_LIGHT_X )

 

Print »MAP3D_INFO_LIGHT_Y : » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_LIGHT_Y )

 

Print »MAP3D_INFO_LIGHT_Z: » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_LIGHT_Z)

 

Print »MAP3D_INFO_LIGHT_COLOR: » + Map3DInfo(FrontWindow(),

 

MAP3D_INFO_LIGHT_COLOR)

312

Справочник MapBasic

Функция Map3dInfo( )

Print »MAP3D_INFO_CAMERA_X: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_X)

Print »MAP3D_INFO_CAMERA_Y : » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_Y )

Print »MAP3D_INFO_CAMERA_Z : » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_Z )

Print »MAP3D_INFO_CAMERA_FOCAL_X: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_FOCAL_X)

Print »MAP3D_INFO_CAMERA_FOCAL_Y: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_FOCAL_Y)

Print »MAP3D_INFO_CAMERA_FOCAL_Z: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_FOCAL_Z)

Print »MAP3D_INFO_CAMERA_VU_1: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VU_1)

Print »MAP3D_INFO_CAMERA_VU_2: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VU_2)

Print »MAP3D_INFO_CAMERA_VU_3: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VU_3)

Print »MAP3D_INFO_CAMERA_VPN_1: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VPN_1)

Print »MAP3D_INFO_CAMERA_VPN_2: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VPN_2)

Print »MAP3D_INFO_CAMERA_VPN_3: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_VPN_3)

Print »MAP3D_INFO_CAMERA_CLIP_NEAR: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_CLIP_NEAR)

Print »MAP3D_INFO_CAMERA_CLIP_FAR: » + Map3DInfo(FrontWindow(),

MAP3D_INFO_CAMERA_CLIP_FAR)

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

Оператор Create 3dMap, оператор Set 3dMap

Справочник MapBasic

313

Функция MapperInfo( )

Функция MapperInfo( )

Назначение:

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

Синтаксис:

MapperInfo(window_id, attribute)

где

window_id – идентификатор окна Карты; attribute – целочисленный код.

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

Величина типа Float, Logical или String, в зависимости от значения кода в параметре attribute.

Описание:

Функция MapperInfo( ) возвращает информацию об окне Карты.

Параметр window_id задает идентификатор окна Карты. Значения идентификатора можно получить, используя функцию FrontWindow( ) сразу после открытия окна Карты, или в другом случае при помощи функции WindowID( ).

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

314

Справочник MapBasic

Функция MapperInfo( )

Значения attribute

Результат MapperInfo( )

 

 

MAPPER_INFO_AREAUNITS

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

 

(например, "sq mi" – квадратные мили).

MAPPER_INFO_CENTERX

XLкоордината центральной точки окна.

MAPPER_INFO_CENTERY

YLкоордината центральной точки окна.

MAPPER_INFO_COORDSYS_CLAU

Строка, соответствующая установке предложения CoordSys

SE

для этого окна.

MAPPER_INFO_COORDSYS_NAME

Строка с именем координатной системы карты такая, как она

 

обозначена в файле MAPINFOW.PRJ (но без суффикса

 

“\p...”, который можно видеть в файле MAPINFOW.PRJ).

 

Возвращает пустую строку, если значение CoordSys не

 

найдено в файле MAPINFOW.PRJ.

MAPPER_INFO_DISPLAY

Целое число типа SmallInt, соответствующее типу

 

информации, которая показывается в строке сообщений окна

 

Карты. Соответствует установке оператора Set Map Display.

 

Результатом может быть один из следующих кодов:

 

MAPPER_INFO_DISPLAY_SCALE

 

MAPPER_INFO_DISPLAY_ZOOM

 

MAPPER_INFO_DISPLAY_POSITION

MAPPER_INFO_DISTUNITS

Имя единицы измерения расстояния (например, "mi").

MAPPER_INFO_EDIT_LAYER

Целое число типа SmallInt, являющееся номером

 

изменяемого слоя. Ноль, если объекты изменяются в

 

Косметическом слое, единица, если изменяемый слой первый

 

некосметический, и т. д. Если результатом будет минус

 

единица, то ни один слой не находится в изменяемом

 

состоянии.

MAPPER_INFO_LAYERS

Число слоев на Карте, включая Косметический (число типа

 

SmallInt).

MAPPER_INFO_MINX

Минимальная XLкоордината части Карты, показанной в окне.

MAPPER_INFO_MINY

Минимальная YLкоордината части Карты, показанной в окне.

MAPPER_INFO_MAXX

Максимальная XLкоордината части Карты, показанной в

 

окне.

MAPPER_INFO_MAXY

Максимальная YLкоордината части Карты, показанной в

 

окне.

MAPPER_INFO_NUM_THEMATIC

Короткое целое число, номер слоя, который является

 

тематическим.

Справочник MapBasic

315

Функция MapperInfo( )

MAPPER_INFO_SCALE

Текущий масштаб; количество единиц измерения расстояния

 

Карты (например, километров), помещающееся в одной

 

"бумажной" единице (например, в сантиметре). Значение

 

возвращается в единицах согласно текущим установкам в

 

MapBasic.

MAPPER_INFO_SCROLLBARS

Логическая величина, показывающая, есть ли в окне Карты

 

полосы прокрутки.

MAPPER_INFO_XYUNITS

Строковая величина с именем координатной единицы

 

(например, "degree").

MAPPER_INFO_COORDSYS_CLAU

Строковая величина, указывающая предложение CoordSys

SE_WITH_BOUNDS

включая ограничивающий данную систему координат

 

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

MAPPER_INFO_MOVE_DUPLICAT E_NODES

MAPPER_INFO_DIST_CALC_TYPE

Короткое целое, указывающее надо ли удалять дублирующиеся узлы в режиме Форма окна Карты. Если значение 0, дублирующиеся узлы не удаляются. Если значение 1, все дублирующиеся узлы на этом слое будут удалены. Атрибут.

Короткое целое, указывающее тип алгоритма вычистения расстояния, длины, периметра м площади. Соответствует Set Map Distance Type. Возвращаемые значения включают MAPPER_INFO_DIST_SPHERICAL MAPPER_INFO_DIST CARTESIAN

MAPPER_INFO_CLIP_REGION

Возвращает строку, определяющую, используется ли регион

 

для отсечения части карты. Возвращает »on» если регион

 

отсечения применяется. В других случаях, возвращает »off».

MAPPER_INFO_CLIP_TYPE

Тип отсечения, применяемый к карте. Варианты включают:

 

MAPPER_INFO_CLIP_DISPLAY_ALL

 

MAPPER_INFO_CLIP_DISPLAY_POLYOBJ

 

MAPPER_INFO_CLIP_OVERLAY

MAPPER_INFO_ZOOM

Размер показанной части Карты (расстояние от Западного до

 

Восточного края) в единицах измерения расстояния,

 

установленных в MapBasic (смотрите описание оператора Set

 

Distance Units).

Когда вызывается MapperInfo( ) для получения значений координат (с указанием MAPPER_INFO_CENTERX в качестве attribute), возвращаемое значение будет координатами в текущей для MapBasic системе координат, которая может отличаться от системы координат в окне Карты. Используйте оператор Set CoordSys для задания другой системы координат.

Настройки для окна Карты и обеспечение поддержки MapBasic можно делать для каждого окна Карты.

Когда создано новое окно Карты, можно настроить режим Совмещения при перемещении (Настройки

316

Справочник MapBasic

Функция MapperInfo( )

/ Режимы / Окно Карты / Совмещать при перемещении).

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

Текущие настройки могут изменяться оператором Set Map.

Информация о врезке региона

Начиная с MapInfo Professional 6.0, существуют 3 метода, применяющиеся для создания врезки. Метод MAPPER_INFO_CLIP_OVERLAY был единственным до версии MI Pro 6.0. Используя этот метод, функция Overlap() используется так, что она определяется системой. Функция Overlap() не обрезает текстовые объекты, а подписи и точечные объекты обрезаются только в том случае если они целиком выходят за область врезки.

Метод MAPPER_INFO_DISPLAY_ALL определяется системой и обрезает все типы объектов, тематика, растры и сетки (гриды) тоже обрезаются. Стили (ширина линий, символы, текст) всегда обрезаются. Это стандартный метод обрезания.

Метод MAPPER_INFO_CLIP_DISPLAY_POLYOBJ используется для воспроизведения возможностей метода MAPPER_INFO_CLIP_OVERLAY. Обрезаются все полиL объекты (регионы и полилинии) и те объекты, которые могут быть превращены в полиL объекты (прямоугольники, скругленные прямоугольники, эллипсы и дуги). Такие объекты всегда обрезаются. Точки, Подписи и текст не обрезаются.

Для использования имен кодов, а не их целочисленных значений, необходимо включить в текст Вашей программы оператор Include "MAPBASIC.DEF".

Заметим, что если Вы используете функцию MapperInfo( ) для получения координат центра окна Карты, то возвращенное значение будет представлено в текущей координатной системе MapBasic. По умолчанию MapBasic использует систему координат широта/долгота. Но Вы можете задать другую оператором Set CoordSys.

Ошибки:

ERR_BAD_WINDOW, если нет такого окна;

ERR_FCN_ARG_RANGE, если аргумент выходит за допустимые пределы; ERR_WANT_MAPPER_WIN, если окно не Карта.

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

LayerInfo( ), Set Distance Units, Set Map

Справочник MapBasic

317

Функция Maximum( )

Функция Maximum( )

Назначение:

Возвращает наибольшее из двух заданных чисел.

Синтаксис:

Maximum(num_expr, num_expr)

где

num_expr – численное выражение.

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

Вещественное число. Величина типа Float.

Описание:

Функция Maximum( ) возвращает наибольшее из двух чисел, заданных численными выражениями num_expr.

Пример:

Dim x, y, z As Float x = 42

y = 27

z = Maximum(x, y)

' z равно 42

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

Minimum( )

318

Справочник MapBasic

Функция MBR( )

Функция MBR( )

Назначение:

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

Синтаксис:

MBR(obj_expr)

где

obj_expr – объектное выражение.

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

Величина типа Object. Графический объект типа "прямоугольник".

Описание:

Функция MBR( ) возвращает графический объект – наименьший прямоугольник, в который можно вписать объект, заданный выражением obj_expr.

Такой прямоугольник представляет минимальное прямоугольное покрытие объекта. Например, минимальное прямоугольное покрытие США представляет собой прямоугольник, у которого правая сторона включает в себя самую западную точку границы штата Мен, нижняя сторона – самую южную точку границы Гавайи, и левая и верхняя стороны – самую восточную и самую северную точки границы штата Аляска.

Минимальное прямоугольное покрытие точечного объекта имеет нулевую ширину и нулевую высоту.

Пример:

Dim o_mbr As Object

Open Table "world"

Fetch First From world

o_mbr = MBR(world.obj)

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

Centroid( ), CentroidX( ), CentroidY( )

Справочник MapBasic

319

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