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

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

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

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

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

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

Параметры:list (list [ThematicIndividualStyleParam]) – Новый список с параметрами.
setThematicStyleParam(index, param)

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

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

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

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

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

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

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

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

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

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

IndividualThematicLayer

class axioma.render.IndividualThematicLayer

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

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

IndividualThematicLayer(parent)

Конструктор

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

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

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

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

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

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

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