ThematicRangeStyleParam

class axioma.render.ThematicRangeStyleParam

Параметры для одного интервала у тематического слоя с распределением по интервалам.

Унаследован от: ThematicColoredStyleParam

Минимальное значение для интервала типа QVariant

Максимальное значение для интервала типа QVariant

Количество объектов, попадающих в данный интервал.

ThematicRangeStyleParam(min_value, max_value, style)

Конструктор. Инициализирует интервал с заданным стилем. См. ThematicColoredStyleParam()

Параметры:
  • min_value (QVariant) – Минимальное значение для интервала
  • max_value (QVariant) – Максимальное значение для интервала
  • style (Style) – Стиль для интервала
checkValue(value, bool)

Проверка значения на попадание в данный интервал

Параметры:value (QVariant) – Проверяемое значение.
Результат:True, если проверяемое значение попадает в интервал.
Тип результата:bool
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()

Возвращается номер интервала, для которого задан промежуточный цвет.

Результат:Интервал.
Тип результата:int
calculateValuesCountByIntervals()

Перераспределение полученных ранее из таблицы значений после смены типа распределения TypeSplitting.

colorBreak()

Возвращается промежуточный цвет, если таковой был задан ранее.

Результат:Цвет.
Тип результата:QColor
colorMax()

Возвращается цвет для максимального значения. Используется как одна из базовых величин при распределении значений по интервалам.

Результат:Цвет для максимального значения.
Тип результата:QColor
colorMin()

Возвращается цвет для минимального значения. Используется как одна из базовых величин при распределении значений по интервалам.

Результат:Цвет для минимального значения.
Тип результата:QColor
defaultStyle()

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

Результат:Коллекцию стилей
Тип результата:CollectionStyle
initIntervals(ranges, preservedExistedStyle = False)

Автоматическое разбиение на интервалы в соответствие с ранее заданными параметрами оформления.

Параметры:
  • ranges (int) – Количество интервалов.
  • preservedExistedStyle (bool) – Если стили уже установлены, постараться их сохранить.
rangesCount()

Количество интервалов.

Результат:Количество интервалов.
Тип результата:int
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

RangeThematicLayer

class 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)