ThematicRangeStyleParam¶
-
class
axioma.render.
ThematicRangeStyleParam
¶ Параметры для одного интервала у тематического слоя с распределением по интервалам.
Унаследован от:
ThematicColoredStyleParam
Минимальное значение для интервала типа QVariant
Максимальное значение для интервала типа QVariant
-
ThematicRangeStyleParam
(min_value, max_value, style)¶ Конструктор. Инициализирует интервал с заданным стилем. См.
ThematicColoredStyleParam()
-
maxValue
¶
-
minValue
¶
-
objects
¶
-
RangeThematicStyleProvider¶
-
class
axioma.render.
RangeThematicStyleProvider
¶ Класс провайдера стилей для тематического слоя
RangeThematicLayer
с распределением по интервалам.Унаследован от:
ThematicStyleProvider
,SplittingThematic
Тип распределения значений TypeSplitting
:¶Наименование величины
Значение
Описание
TS_EQUAL_INTERVAL
1
Равномерный разброс значений
TS_EQUAL_COUNT
2
Равное количество записей
TS_MANUAL
3
Ручное задание интервалов
-
RangeThematicStyleProvider
(layer)¶ Конструктор
- Параметры
layer (
ThematicLayer
) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.
-
RangeThematicStyleProvider
(other)¶ Копирующий конструктор
- Параметры
other (
RangeThematicStyleProvider
) – Исходный экземпляр, на базе которого создается текущий экземпляр объекта.
-
breakRange
()¶ Возвращается номер интервала, для которого задан промежуточный цвет.
- Результат
Интервал.
- Тип результата
-
calculateValuesCountByIntervals
()¶ Перераспределение полученных ранее из таблицы значений после смены типа распределения TypeSplitting.
-
colorBreak
()¶ Возвращается промежуточный цвет, если таковой был задан ранее.
- Результат
Цвет.
- Тип результата
QColor
-
colorMax
()¶ Возвращается цвет для максимального значения. Используется как одна из базовых величин при распределении значений по интервалам.
- Результат
Цвет для максимального значения.
- Тип результата
QColor
-
colorMin
()¶ Возвращается цвет для минимального значения. Используется как одна из базовых величин при распределении значений по интервалам.
- Результат
Цвет для минимального значения.
- Тип результата
QColor
-
defaultStyle
()¶ Возвращает коллекцию стилей оформления (по типам объектов), заданный по умолчанию. В дальнейшем для каждого значения стиль можно переопределить
- Результат
Коллекцию стилей
- Тип результата
-
initIntervals
(ranges, preservedExistedStyle=False)¶ Автоматическое разбиение на интервалы в соответствие с ранее заданными параметрами оформления.
-
reallocateColorBySettingParams
()¶ Перераспределение по цветам существующего списка параметров исходя из заданных новых значений по цветам.
-
setBreakParameters
(color, range)¶ Задается промежуточный цвет и номер интервала, которому он соответствует. Далее, при распределении цветов, он устанавливается для интервала range, остальные цвета получаются в виде градиента от установленных. После задания необходимо повторно инициализировать, выполнив initIntervals
- Параметры
color (
QColor
) – Новое значение для цвета.range (
int
) – Номер интервала.
-
setColorMax
(color)¶ Задается цвет для максимального значения. После задания необходимо повторно инициализировать, выполнив initIntervals
- Параметры
color (
QColor
) – Новое значение для цвета.
-
setColorMin
(color)¶ Задается цвет для минимального значения. После задания необходимо повторно инициализировать, выполнив initIntervals
- Параметры
color (
QColor
) – Новое значение для цвета.
-
setDefaultStyle
(style)¶ Переопределение стилей по умолчанию
- Параметры
style (
CollectionStyle
) – Новый набор стилей оформления
-
setThematicStyleParam
(index, param)¶ Замена существующего набора параметров конкретного интервала по его индексу.
- Параметры
index (
int
) – Индекс параметра.param (
ThematicRangeStyleParam
) – Новые параметры заданного интервала.
-
setThematicStyleParamsList
(list)¶ Замена существующего списка параметров по интервалам новым.
- Параметры
list (
ThematicRangeStyleParam
) – Новый список с параметрами.
-
setTypeSplitting
(value)¶ Установка типа распределения значений.
- Параметры
value (
TypeSplitting
) – Допустимые значения см. в таблице выше.
-
splitValuesToIntervals
()¶ Задание минимума и максимума для каждого интервала посредством анализа полученных ранее из источника данных.
-
thematicStyleParam
(index)¶ Получение параметров интервала по его индексу.
- Параметры
index (
int
) – Индекс требуемого параметра.- Результат
Параметры запрашиваемого интервала.
- Тип результата
-
thematicStyleParamsList
()¶ Возвращается список параметров по существующим интервалам.
- Результат
Список параметров.
- Тип результата
-
typeSplitting
()¶ Возвращает установленный тип распределения значений
- Результат
Значение.
- Тип результата
TypeSplitting
-
RangeThematicLayer¶
-
class
axioma.render.
RangeThematicLayer
¶ Тематический слой с распределением по интервалам и с распределением по цветовой гамме
Унаследован от:
ThematicLayer
-
RangeThematicLayer
(parent)¶ Конструктор
- Параметры
parent (
FeatureLayer
) – Ссылка на слой, на базе которого создается данный тематический слой.
-
RangeThematicLayer
(other)¶ Копирующий конструктор
- Параметры
other (
RangeThematicLayer
) – Исходный слой, на базе которого создается новый слой.
-
setStyleProvider
(provider)¶ Устанавливает новый провайдер стилей для слоя.
- Параметры
provider (
RangeThematicStyleProvider
) – Новый провайдер стилей.
-
styleProvider
()¶ Возвращает текущий провайдер стилей для слоя.
- Результат
Копия провайдера стиля, установленного для слоя на данный момент
- Тип результата
-
Пример использования:
# Импорт from axioma.render import * from axioma.core.sql import * from axioma.mapinfo import * # Создание переменной для обеспечения возможности вычисления выражений runtime = SqlRuntime() # Добавление слоя в конец списка def addLayer(layer, thematic): layer.appendLayer(thematic); # Создание выражения по полю def makeExpressionForWorld(layer, attr): evaluator = FeatureExpressionEvaluator(runtime, layer.tableSchema()) if not evaluator.setExpression(axioma.app.mainWindow.tr(attr)): print(evaluator.errorString()) return evaluator # Интервалы. layer - базовый слой, на основе которого строится тематика def addRangeThematic(layer): rangeLayer = RangeThematicLayer(layer) # Создание самого слоя rangeStyleProvider = RangeThematicStyleProvider(rangeLayer) # Стиль оформления evaluator = makeExpressionForWorld(layer, QObject().tr("Население")) if not evaluator.hasError(): rangeStyleProvider.setEvaluator(evaluator); rangeStyleProvider.setTypeSplitting(RangeThematicStyleProvider.TS_EQUAL_COUNT); rangeStyleProvider.initValuesFromTable( layer.table()) # чтение из таблицы rangeStyleProvider.setColorMin(Qt.red) # цвет минимума rangeStyleProvider.setBreakParameters(Qt.green, 6) # Разрыв по цвету rangeStyleProvider.setColorMax(Qt.yellow) # цвет максимума rangeStyleProvider.initIntervals(12); # Количество интервалов rangeStyleProvider.splitValuesToIntervals() # Разбиение полученых значений по интервалам rangeLayer.setStyleProvider(rangeStyleProvider) # Установка провайдера стиля addLayer(layer, rangeLayer)
Пример с явным указанием параметров каждого интервала:
... def colorToMapbasic(color): return QColor(color).rgb() - 0xFF000000 def addRangeThematicManual(layer): print("Range manual range thematic..." ) rangeLayer = RangeThematicLayer(layer) # Создание самого слоя rangeStyleProvider = RangeThematicStyleProvider(rangeLayer) # Стиль оформления evaluator = makeExpressionForWorld(layer, QObject().tr("Население")) if not evaluator.hasError(): rangeStyleProvider.setEvaluator(evaluator); rangeStyleProvider.setTypeSplitting(RangeThematicStyleProvider.TS_EQUAL_COUNT); rangeStyleProvider.initValuesFromTable( layer.table()) # чтение из таблицы # Явно устанавливаем интервалы и соотвествующие им стили style1 = MapBasicStyle().styleFromString("Pen (1, 2, 0) Brush (2, %d)" % ( colorToMapbasic(Qt.red))) style2 = MapBasicStyle().styleFromString("Pen (1, 2, 0) Brush (2, %d)" % ( colorToMapbasic(Qt.blue))) style3 = MapBasicStyle().styleFromString("Pen (1, 2, 0) Brush (2, %d)" % ( colorToMapbasic(Qt.green))) p1 = ThematicRangeStyleParam(0, 1326796, style1) p2 = ThematicRangeStyleParam(1326796, 8954000, style2) p3 = ThematicRangeStyleParam(8954000, 1130510638, style3) pars = [p1, p2, p3] # Массив с параметрами интервалов rangeStyleProvider.setThematicStyleParamsList(pars) rangeLayer.setStyleProvider(rangeStyleProvider) # Установка провайдера стиля rangeLayer.setName('Интервалы по параметрам') addLayer(layer, rangeLayer)