SymbolLimits

class axioma.render.SymbolLimits

Лимиты значений (интервал) для рассматриваемого символа

minimum

Минимальное значение

Type

QVariant

maximum

Максимальное значение

Type

QVariant

SymbolThematicStyleProvider

class axioma.render.SymbolThematicStyleProvider

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

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

SymbolThematicStyleProvider(layer, hmin=6, hmax=20)

Конструктор

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

  • hmin (int) – Минимальная высота символа. По умолчанию равно 6

  • hmax (int) – Максимальная высота символа. По умолчанию равно 20

calculateLimitsValues(table)

Чтение значений из таблицы и расчет интервала значений по выражению. Результат выполнения используется для задания интервалов посредством метода setLimitsValues

Параметры

table (Table) – Таблица, из которой читаются значения по заданному ранее выражению.

Результат

Существующие пределы по выражению по результатам анализа

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

SymbolLimits

defaultStyle()

Стиль символа для отображения тематики

Результат

Стиль

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

PointStyle

evaluator()

Заданное выражение для вычисления значения по данным таблицы

Результат

Выражение

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

FeatureExpressionEvaluator

limitValues()

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

Результат

Значения

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

SymbolLimits

maxHeight()

Максимальная высота символа

Результат

Значение

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

int

minHeight()

Минимальная высота символа

Результат

Значение

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

int

setDefaultStyle(style)

Установка стиля оформления для тематики

Параметры

style (PointStyle) – Стиль

setEvaluator(expression)

Задание выражение для вычисления значения по данным таблицы

Параметры

expression (FeatureExpressionEvaluator) – Задание выражения, по которому будут вычисляться значения при анализе таблицы.

setLimitsValues(values)

Установка пределов значений. Для расчета можно воспользоваться методом calculateLimitsValues

Параметры

values (SymbolLimits) – Новые ограничения

setMaxHeight(value)

Задание минимальной высоты символа

Параметры

value (float) – Новое значение

setMaxHeight(value)

Задание максимальной высоты символа

Параметры

value (float) – Новое значение

SymbolThematicLayer

class axioma.render.SymbolThematicLayer

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

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

SymbolThematicLayer(parent)

Конструктор

Параметры

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

SymbolThematicLayer(other)

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

Параметры

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

setStyleProvider(provider)

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

Параметры

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

styleProvider()

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

Результат

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

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

SymbolThematicStyleProvider

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

# Импорт
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 addSymbolThematic(layer):
    symbolLayer = SymbolThematicLayer(layer) # Создание самого слоя
    symbolStyleProvider =  SymbolThematicStyleProvider(symbolLayer) # Стиль оформления
    evaluator = makeExpressionForWorld(layer, QObject().tr("Население"))
    if not evaluator.hasError():
        symbolStyleProvider.setEvaluator(evaluator);
        limitsValues = symbolStyleProvider.calculateLimitsValues( layer.table()) # Расчет предельных значений
        symbolStyleProvider.setLimitsValues(limitsValues)
        fs = FontSymbolStyle()
        fs.setColor(Qt.red)
        symbolStyleProvider.setDefaultStyle(fs) # Стиль точечного объекта
        symbolStyleProvider.setMaxHeight(24) # Максимальная высота символа
        symbolLayer.setStyleProvider(symbolStyleProvider)  # Установка провайдера стиля
        addLayer(layer, symbolLayer)