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

Оператор 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", Вы разделите диапазоны, исходя из разброса значений (например, 0L25, 25L50, 50L75, 75L100). Задав "Equal Count", Вы разделите диапазоны, исходя из количества записей в таблице, т.е. в диапазоны попадет примерно одинаковое количество записей. Задав "Natural Break", Вы разделите диапазоны, исходя из естественно близких групп значений. Задав "StdDev", Вы сначала делите диапазоны по среднему значению, а затем добавляете один диапазон со значениями выше среднего, но не далее величины дисперсии от среднего, а также еще один диапазон со значениями ниже среднего, но не далее величины дисперсии от среднего.

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

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

Справочник MapBasic

147

Оператор 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”

148

Справочник MapBasic

Оператор 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

Справочник MapBasic

149

Оператор Create Rect

Оператор Create Rect

Назначение:

Создает объект "прямоугольник".

Синтаксис:

Create Rect

[ Into { Window window_id | Variable var_name } ] (x1, y1) (x2, y2)

[ Pen... ]

[ Brush... ]

где

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

x1, y1 – координаты начального угла прямоугольника;

x2, y2 – координаты противоположного по диагонали угла прямоугольника.

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

Слово Brush начинает стандартное предложение для назначения стиля штриховки объекта.

Описание:

Оператор Create Rect создает новый объект типа "прямоугольник". Если ширина равняется высоте, то объект является квадратом, иначе – прямоугольником.

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

Параметры x и y являются координатами в той системе координат, которая была объявлена до оператора Create Rect. (Смотрите описание оператора Set CoordSys.) Если система не объявлялась, то координаты будут принимать значения широты и долготы. При этом надо учесть, что MapBasic игнорирует координатную систему самого окна Карты. Если объект создается для окна Отчета, параметры x и y интерпретируются как координаты на листе в объявленных ранее единицах измерения листа. (Смотрите описание оператора Set Paper Units.) Так, XLкоордината – это расстояние от левого края листа до точки, а YLкоордината – расстояние от верхнего края листа.

Замечание: Перед созданием объекта в окне Отчета не забудьте выполнить оператор Set CoordSys Layout.

Предложения Pen и Brush назначают стиль линии и штриховки объекта. Если в операторе не участвует предложение Pen, оператор Create Rect использует установку соответствующего режима для стиля линии в MapInfo. Стиль линии можно изменить командой НАСТРОЙКА > СТИЛЬ ЛИНИЙ. Предложению Brush в MapInfo соответствует команда НАСТРОЙКА > СТИЛЬ ОБЛАСТЕЙ.

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

Brush, Create RoundRect, Insert, Pen, Update

150

Справочник MapBasic

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