ThematicRangeStyleParam

class axioma.render.ThematicRangeStyleParam

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

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

ThematicRangeStyleParam(min_value, max_value, style)

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

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

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

maxValue

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

objects

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

checkValue(value, bool)

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

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

RangeThematicStyleProvider

class 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) – Исходный экземпляр, на базе которого создается текущий экземпляр объекта.
typeSplitting()

Возвращает установленный тип распределения значений

Результат:Значение.
Тип результата:TypeSplitting
setTypeSplitting(value)

Установка типа распределения значений.

Параметры:value (TypeSplitting) – Допустимые значения см. в таблице выше.
initIntervals(ranges, preservedExistedStyle = False)

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

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

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

colorMin()

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

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

Задается цвет для минимального значения. После задания необходимо повторно инициализировать, выполнив initIntervals

Параметры:color (QColor) – Новое значение для цвета.
colorMax()

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

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

Задается цвет для максимального значения. После задания необходимо повторно инициализировать, выполнив initIntervals

Параметры:color (QColor) – Новое значение для цвета.
colorBreak()

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

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

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

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

Задается промежуточный цвет и номер интервала, которому он соответствует. Далее, при распределении цветов, он устанавливается для интервала range, остальные цвета получаются в виде градиента от установленных. После задания необходимо повторно инициализировать, выполнив initIntervals

Параметры:
  • color (QColor) – Новое значение для цвета.
  • range (int) – Номер интервала.
thematicStyleParamsList()

Возвращается список параметров по существующим интервалам.

Результат:Список параметров.
Тип результата:list [ThematicRangeStyleParam]
setThematicStyleParamsList(list)

Замена существующего списка параметров по интервалам новым.

Параметры:list (ThematicRangeStyleParam) – Новый список с параметрами.
thematicStyleParam(index)

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

Параметры:index (int) – Индекс требуемого параметра.
Результат:Параметры запрашиваемого интервала.
Тип результата:ThematicRangeStyleParam
setThematicStyleParam(index, param)

Замена существующего набора параметров конкретного интервала по его индексу.

Параметры:
  • index (int) – Индекс параметра.
  • param (ThematicRangeStyleParam) – Новые параметры заданного интервала.
rangesCount()

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

Результат:Количество интервалов.
Тип результата:int
reallocateColorBySettingParams()

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

calculateValuesCountByIntervals()

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

defaultStyle()

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

Результат:Коллекцию стилей
Тип результата:CollectionStyle
setDefaultStyle(style)

Переопределение стилей по-умолчанию

Параметры:style (CollectionStyle) – Новый набор стилей оформления

RangeThematicLayer

class axioma.render.RangeThematicLayer

Тематический слой с распределением по интервалам и с распределением по цветовой гамме

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

RangeThematicLayer(parent)

Конструктор

Параметры:parent (FeatureLayer) – Ссылка на слой, на базе которого создается данный тематический слой.
RangeThematicLayer(other)

Копирующий конструктор

Параметры:other (RangeThematicLayer) – Исходный слой, на базе которого создается новый слой.
styleProvider()

Возвращает текущий провайдер стилей для слоя.

Результат:Копия провайдера стиля, установленного для слоя на данный момент
Тип результата:RangeThematicStyleProvider
setStyleProvider(provider)

Устанавливает новый провайдер стилей для слоя.

Параметры:provider (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)