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

Оператор Create Point

Оператор Create Point

Назначение:

Создает объект типа "точка".

Синтаксис:

Create Point

[ Into { Window window_id | Variable var_name } ] (x, y)

[ Symbol... ]

где

window_id – идентификатор окна, целое число; var_name – имя объектной переменной;

x, y – координаты точки;

Слово Symbol начинает стандартное предложение для назначения стиля символа точечного объекта.

Описание:

Оператор Create Point создает новый точечный объект.

Если оператор включает предложение Into Variable, то созданный объект объявляется как значение объектной переменной. Если после слов Into Window указывается окно, объект помещается на подготовленное место в окне (например, на изменяемый слой). Если Into вообще нет в операторе, MapBasic попробует создать точку в самом верхнем окне; если это невозможно (например, поверх всех окон лежит окно Графика), то объект не будет создан.

Параметры x и y являются координатами в той системе координат, которая была объявлена до оператора Create Point. (Смотрите описание оператора Set CoordSys.) Если система не объявлялась, то координаты будут принимать значения широты и долготы. При этом надо учесть, что MapBasic игнорирует координатную систему самого окна Карты.

Если объект создается для окна Отчета, параметры x и y интерпретируются как координаты на листе в объявленных ранее единицах измерения листа. (Смотрите описание оператора Set Paper Units.) Так X-координата – это расстояние от левого края листа до точки, а Y-координата – расстояние от верхнего края листа. Перед созданием объекта в окне Отчета необходимо выполнить оператор Set CoordSys Layout.

Предложением Symbol назначается стиль символа, которым точечный объект обозначается на Карте. Если в операторе это предложение не участвует, оператор Create Point использует установку соответствующего режима для стиля линии в MapInfo (стиль линии можно изменить командой НАСТРОЙКА > СТИЛЬ СИМВОЛОВ).

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

CreatePoint( ), Insert, Symbol, Update

Справочник MapBasic

157

Оператор Create PrismMap

Оператор Create PrismMap

Назначение

Создает Карту-призму.

Синтаксис

Create PrismMap

[ From Window window_ID | MapString mapper_creation_string ]

{ layer_id | layer_name } With expr

[ Camera [ Pitch angle | Roll angle | Yaw angle | Elevation angle ] | [ Position (x,y,z) | FocalPoint (x,y,z) ] |

[ Orientation (vu_1, vu_2, vu_3, vpn_1, vpn_2, vpn_3, clip_near, clip_far) ] ]

[ Light Color lightcolor ] ] [ Scale grid_scale ]

[ Background backgroundcolor ]

window_id это идентификатор окна для окна Карты, которое содержит слой полигонов. Если слой с полигонами не найден, появится сообщение об ошибке.

mapper_creation_string определяет командную строку, которая создает текстуру для Карты-призмы. layer_id - это идентификатор слоя Карты

layer_name это имя слоя Карты.

Camera определяет позицию и ориентацию камеры.

angle - это угол в градусах. Горизонтальный угол (измеряется в диапазоне 0-360 градусов) определяет вращение карты вокруг центральной точки поверхности (grid). Вертикальный угол изменяется в диапазоне 0-90 и измеряет наклон карты от начальной точки.

Pitch настраивает вращение камеры вокруг оси X, при этом точкой вращения считается центральная (начальная) точка камеры.

Roll настраивает вращение камеры вокруг оси Z, при этом точкой вращения считается центральная (начальная) точка камеры.

Yaw настраивает вращение камеры вокруг оси Y, при этом точкой вращения считается центральная (начальная) точка камеры.

Elevation настраивает вращение карты вокруг оси X, при этом точкой вращения считается фокальная точка камеры.

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

FocalPoint определяет фокальную точку камеры и/или источника освещения.

Orientation определяет для камеры значение параметров ViewUp, ViewPlane и Clipping Range (используется для инерции зрительного восприятия).

grid_scale - это масштаб по оси Z. Если значение > 1, то изображение растянется по оси Z, а если значение < 1, то изображение сожмется по оси Z.

backgroundcolor - это цвет, используемый для фона и определяемый функцией RGB.

158

Справочник MapBasic

Оператор Create PrismMap

Описание

Оператор Create PrismMap создает окно Карты-призмы. С помощью карты-призмы можно отображать несколько переменных для одного объекта. Например, цвет, ассоциированный с полигоном, может иметь тематическое значение одной колонки, а высота призмы может отражать значение другой колонки. Оператор Create PrismMap соответствует команде КАРТА > СОЗДАТЬ

КАРТУ-ПРИЗМУ.

Между сеансами работы MapInfo сохраняет настройки карты-призмы, сохраняя оператор Create PrismMap в файле рабочего набора. Таким образом, чтобы увидеть пример оператора Create Prism Map, создайте карту, выполните команду КАРТА > СОЗДАТЬ ТЕМАТИЧЕСКУЮКАРТУ, сохраните рабочий набор (например, PRISM.WOR), и проверьте рабочий набор в окне MapBasic. После этого скопируйте оператор Create PrismMap в Вашу программу MapBasic. Аналогично можно увидеть примеры операторов Create PrismMap при открытии окна MapBasic перед выполнением команды КАРТА > СОЗДАТЬ ТЕМАТИЧЕСКУЮКАРТУ.

Дополнительное предложение window_id определяет, какая карта послужит основой Карты-призмы; если предложение window_id отсутствует, MapBasic создаст призмы для самого верхнего окна Карты. Оператор Create PrismMap указывает, какой слой надо использовать, даже если окно Карты имеет только один слой. Слой может быть инентифицирован по номеру (layer_id), где самый верхний слой карты имеет layer_id, равный 1, следующий слой имеет layer_id, равный 2, и т.д. В то же время оператор Create PrismMap может идентифицировать слой карты по имени (например, “world”).

Каждый оператор Create PrismMap должен определять предложение выражения expr. MapInfo оценивает это выражение для каждого объекта в таблице, из которой строятся призмы; обрабатывая действия оператора Create PrismMap, MapInfo выбирает стиль отображения каждого объекта, основываясь на значении записи expr. Выражение обычно включает в себя имя одной или более колонок из таблицы.

Пример

Open Table "STATES.TAB" Interactive

Map From STATES

Create PrismMap From Window FrontWindow() STATES With Pop_1980

Background RGB(192,192,192)

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

Функция PrismMapInfo()

Оператор Set PrismMap

Справочник MapBasic

159

Оператор Create Ranges

Оператор Create Ranges

Назначение:

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

Синтаксис:

Create Ranges

From table

With expr

[ Use {"Equal Ranges" | "Equal Count" | "Natural Break" | "StdDev" } ] [ Quantile Using q_expr ]

[ Number num_ranges ]

[ Round rounding_factor ] Into Variable array_variable

где

table – имя открытой таблицы, объекты которой будут участвовать в тематическом выделении; expr – выражение, которое вычисляется для каждой записи таблицы;

q_expr – выражение, используемое при квантовании; num_ranges – задает число диапазонов (по умолчанию 4);

rounding_factor – делитель, по которому округляются диапазоны при разделении (например, значение 10 задает округление до ближайшего десятка);

array_variable – массив численных переменных типа Float, в который будут помещены значения для диапазонов.

Описание:

Оператор Create Ranges вычисляет значения диапазонов, которые могут быть впоследствии использоваться в операторе Shade, для создания тематического слоя на Карте методом выделения диапазонов. Подробную информацию о тематических Картах смотрите в документации по MapInfo.

Предложение Use задает метод, каким будут разделены данные на диапазоны. Задав "Equal Ranges", Вы разделите диапазоны, исходя из разброса значений (например, 0-25, 25-50, 50-75, 75-100). Задав "Equal Count", Вы разделите диапазоны, исходя из количества записей в таблице, т.е. в диапазоны попадет примерно одинаковое количество записей. Задав "Natural Break", Вы разделите диапазоны, исходя из естественно близких групп значений. Задав "StdDev", Вы сначала делите диапазоны по среднему значению, а затем добавляете один диапазон со значениями выше среднего, но не далее величины дисперсии от среднего, а также еще один диапазон со значениями ниже среднего, но не далее величины дисперсии от среднего.

Предложение Into Variable определяет имя массива переменных типа Float, в который будет помещен результат. Не нужно следить за размерами этого массива; MapInfo автоматически изменяет его размер. Размер этого массива будет всегда в два раза больше количества диапазонов, так как в нем помещаются как нижняя, так и верхняя граница диапазона.

После выполнения оператора Create Ranges выполняется оператор Shade, чтобы создать тематическую Карту. В операторе Shade можно задать предложение From Variable, которое прочитает массив границ диапазонов. Оператор Shade обычно использует ту же таблицу и то же

160

Справочник MapBasic

Оператор Create Ranges

выражение для колонки, что и оператор Create Ranges.

Квантование диапазонов

Предложение Quantile Using отключает предложение Use и назначает разделение диапазонов квантованием, которое задается выражением Quantile Using.

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

Create

Ranges

From states

With

BPI_1990

Quantile Using Pop_1990

Number 5

Into Variable f_ranges

В этом примере создается пять диапазонов (Number 5).

Штаты с высокой покупательной способностью населения (With BPI_1990) помещаются в "высшие" диапазоны (темные оттенки цвета), а с низкой – в "низшие" (светлые оттенки цвета).

Границы диапазонов устанавливаются следующим образом: так как предложение Quantile Using задает колонку "Pop_1990", то MapInfo сначала вычисляет общее количество населения США (около 250 миллионов); затем MapInfo делит результат на количество диапазонов (в нашем случае, 5) и получается пятьдесят миллионов. После этого MapInfo делит диапазоны так, чтобы суммарное население штатов, охватываемых диапазоном, приближалось (но не превосходило) пятьдесят миллионов.

MapInfo собирает штаты по порядку возрастания покупательной способности BPI, и в первый, "низший" диапазон попадают штаты с наинизшей покупательной способностью. MapInfo продолжает добавлять штаты в первый диапазон до тех пор, пока суммарное значение населения не достигнет или не приблизится к пятидесяти миллионам; в этот момент MapInfo решает, что первый диапазон готов и приступает к обсчету следующего и т.д.

Пример:

Include ”mapbasic.def”

Dim range_limits() As Float, brush_styles() As Brush

Dim col_name As Alias

Open Table ”states” Interactive

Create Styles

 

 

From Brush(2,

CYAN, 0)

'стиль для "низшего" диапазона

To Brush (2,

BLUE, 0)

'стиль для "высшего" диапазона

Vary Color By

”RGB”

 

Number 5

 

 

Into Variable

brush_styles

’ Присвоим имя колонки переменной типа Alias: col_name = ”Pop_1990”

Справочник MapBasic

161

Оператор Create Ranges

Create Ranges From states

With col_name

Use ”Natural Break”

Number 5

Into Variable range_limits

Map From states

Shade states

With col_name

Ranges

From Variable range_limits

Style Variable brush_styles

’ Вывод окна Легенды: Open Window Legend

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

Create Styles, Set Shade, Shade

162

Справочник MapBasic

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