ThematicRangeStyleParam

class axioma.render.ThematicRangeStyleParam

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

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

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

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

ThematicRangeStyleParam(min_value, max_value, style)

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

Параметры
  • min_value (QVariant) – Минимальное значение для интервала

  • max_value (QVariant) – Максимальное значение для интервала

  • style (Style) – Стиль для интервала

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