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)