ThematicIndividualStyleParam

class axioma.render.ThematicIndividualStyleParam

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

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

Конструктор с пустыми значениями

ThematicIndividualStyleParam()
ThematicIndividualStyleParam(value, color)

Конструктор

Параметры
  • value (QVariant) – Значение.

  • color (QColor) – Цвет оформления.

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

Параметры
  • value (QVariant) – Значение.

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

value

Значение

Type

QVariant

IndividualThematicStyleProvider

class axioma.render.IndividualThematicStyleProvider

Класс провайдера стилей для тематического слоя IndividualThematicLayer.

Унаследован от: ThematicStyleProvider, SplittingThematic

IndividualThematicStyleProvider(layer)

Конструктор

Параметры

layer (ThematicLayer) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.

IndividualThematicStyleProvider(other)

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

Параметры

other (IndividualThematicStyleProvider) – Исходный экземпляр, на базе которого создается текущий экземпляр объекта.

defaultStyle()

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

Результат

Коллекцию стилей

Тип результата

CollectionStyle

reallocateColorByValues(preserveOldStyles=True)

Перераспределение стилей по цвету. Цвет подбирается случайным образом. Дальнейшее переопределение возможно (см. пример ниже).

Параметры

preserveOldStyles (bool) – Сохранение существующих стилей. Применяется, когда количество значений увеличилось, но есть желание оставить существующие стили текущими. Если False, стили переопределяются на случайные по цвету.

setDefaultStyle(style)

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

Параметры

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

setThematicStyleParam(index, param)

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

Параметры
  • index (int) – Индекс параметра.

  • param (ThematicIndividualStyleParam) – Новые параметры заданного значения.

setThematicStyleParamsList(list)

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

Параметры

list (list [ThematicIndividualStyleParam]) – Новый список с параметрами.

thematicStyleParam(index)

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

Параметры

index (int) – Индекс требуемого параметра.

Результат

Параметры запрашиваемого интервала.

Тип результата

ThematicIndividualStyleParam

thematicStyleParamCount()

Количество полученных параметров (значений).

Результат

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

Тип результата

int

thematicStyleParamsList()

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

Результат

Список параметров.

Тип результата

list [ThematicIndividualStyleParam]

IndividualThematicLayer

class axioma.render.IndividualThematicLayer

Тематический слой с распределением стилей по индивидуальным значением

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

IndividualThematicLayer(parent)

Конструктор

Параметры

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

IndividualThematicLayer(other)

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

Параметры

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

setStyleProvider(provider)

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

Параметры

provider (IndividualThematicLayer) – Новый провайдер стилей.

styleProvider()

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

Результат

Копия провайдера стиля, установленного для слоя на данный момент

Тип результата

IndividualThematicLayer

Пример использования:

# Импорт
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 addIndividualThematic(layer):
    individualLayer = IndividualThematicLayer(layer) # Создание самого слоя
    individualLayer.setName(QObject().tr("Континенты по цветам")) # Имя слоя
    individualStyleProvider =  IndividualThematicStyleProvider(individualLayer) # Стиль оформления
    evaluator = makeExpressionForWorld(layer, QObject().tr("Континент"))
    if not evaluator.hasError():
        individualStyleProvider.setEvaluator(evaluator)
        individualStyleProvider.initValuesFromTable( layer.table()) # чтение из таблицы
        individualStyleProvider.reallocateColorByValues()
        if individualStyleProvider.thematicStyleParamCount(): # Заменим у первого цвет на желтый
            param0 = individualStyleProvider.thematicStyleParam(0)
            param0.setColor(Qt.yellow)
            individualStyleProvider.setThematicStyleParam( 0, param0)
        if individualStyleProvider.thematicStyleParamCount() > 1: # Заменим у второго стиль на строку MapBasic
            param1 = individualStyleProvider.thematicStyleParam(1)
            # Создаем стиль из строки MapBasic
            style = MapBasicStyle().styleFromString("Brush (2,16776960,16777215) Pen (1,2,0)")
            # Заменяем стиль
            param1.style().setStyle(PolygonalGeometryClass(), style)
            individualStyleProvider.setThematicStyleParam( 1, param1)
        individualLayer.setStyleProvider(individualStyleProvider)  # Установка провайдера стиля
        addLayer(layer, individualLayer)