axioma.render.
ThematicRangeStyleParam
¶Параметры для одного интервала у тематического слоя с распределением по интервалам.
Унаследован от: ThematicColoredStyleParam
Минимальное значение для интервала типа QVariant
Максимальное значение для интервала типа QVariant
Количество объектов, попадающих в данный интервал.
ThematicRangeStyleParam
(min_value, max_value, style)¶Конструктор. Инициализирует интервал с заданным стилем. См.
ThematicColoredStyleParam()
Параметры:
checkValue
(value, bool)¶Проверка значения на попадание в данный интервал
Параметры: value ( QVariant
) – Проверяемое значение.Результат: True, если проверяемое значение попадает в интервал. Тип результата: bool
maxValue
¶
minValue
¶
objects
¶
axioma.render.
RangeThematicStyleProvider
¶Класс провайдера стилей для тематического слоя RangeThematicLayer
с распределением по интервалам.
Унаследован от: ThematicStyleProvider
, SplittingThematic
Тип распределения значений TypeSplitting
:¶Наименование величины Значение Описание TS_EUQUAL_INTERVAL 1 Равномерный разброс значений TS_EUQUAL_COUNT 2 Равное количество записей TS_MANUAL 3 Ручное задание интервалов
RangeThematicStyleProvider
(layer)¶Конструктор
Параметры: layer ( ThematicLayer
) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.
RangeThematicStyleProvider
(other)Копирующий конструктор
Параметры: other ( RangeThematicStyleProvider
) – Исходный экземпляр, на базе которого создается текущий экземпляр объекта.
breakRange
()¶Возвращается номер интервала, для которого задан промежуточный цвет.
Результат: Интервал. Тип результата: int
calculateValuesCountByIntervals
()¶Перераспределение полученных ранее из таблицы значений после смены типа распределения TypeSplitting.
colorBreak
()¶Возвращается промежуточный цвет, если таковой был задан ранее.
Результат: Цвет. Тип результата: QColor
colorMax
()¶Возвращается цвет для максимального значения. Используется как одна из базовых величин при распределении значений по интервалам.
Результат: Цвет для максимального значения. Тип результата: QColor
colorMin
()¶Возвращается цвет для минимального значения. Используется как одна из базовых величин при распределении значений по интервалам.
Результат: Цвет для минимального значения. Тип результата: QColor
defaultStyle
()¶Возвращает коллекцию стилей оформления (по типам объектов), заданный по умолчанию. В дальнейшем для каждого значения стиль можно переопределить
Результат: Коллекцию стилей Тип результата: CollectionStyle
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
) – Индекс требуемого параметра.Результат: Параметры запрашиваемого интервала. Тип результата: ThematicRangeStyleParam
thematicStyleParamsList
()¶Возвращается список параметров по существующим интервалам.
Результат: Список параметров. Тип результата: list
[ThematicRangeStyleParam
]
typeSplitting
()¶Возвращает установленный тип распределения значений
Результат: Значение. Тип результата: TypeSplitting
axioma.render.
RangeThematicLayer
¶Тематический слой с распределением по интервалам и с распределением по цветовой гамме
Унаследован от: ThematicLayer
RangeThematicLayer
(parent)¶Конструктор
Параметры: parent ( FeatureLayer
) – Ссылка на слой, на базе которого создается данный тематический слой.
RangeThematicLayer
(other)Копирующий конструктор
Параметры: other ( RangeThematicLayer
) – Исходный слой, на базе которого создается новый слой.
setStyleProvider
(provider)¶Устанавливает новый провайдер стилей для слоя.
Параметры: provider ( RangeThematicStyleProvider
) – Новый провайдер стилей.
styleProvider
()¶Возвращает текущий провайдер стилей для слоя.
Результат: Копия провайдера стиля, установленного для слоя на данный момент Тип результата: RangeThematicStyleProvider
Пример использования:
# Импорт 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_EUQUAL_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_EUQUAL_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)