DensitySizeParam

class axioma.render.DensitySizeParam

Параметры, описывающие количество (плотность) точек и соответствующее им вычисленное значение выражения.

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

DensitySizeParam()
DensitySizeParam(points, value)

Конструктор

Параметры
  • points (int) – Количество точек, заполняющих объект

  • value (QVariant) – Максимальное значение, соответствующее данному количеству точек

DensityStyleParam

class axioma.render.DensityStyleParam

Вид (стиль) точек, которыми будет заполняться площадной объект

Форма точки FormType:

Наименование величины

Значение

Описание

ftRound

0

Круглая

ftSquare

1

Квадратная

Конструктор со значениями по умолчанию (черные круглые точки размером 1)

DensityStyleParam()
DensityStyleParam(form, color, size)

Конструктор

Параметры
  • form (FormType) – Вид формы точки.

  • color (QColor) – Цвет точки

  • size (UnitSize) – Размер точки

color

Цвет точки

Type

QColor

formType

Вид формы точки.

Type

FormType

name

Размер точки

Type

UnitSize

DensityThematicStyleProvider

class axioma.render.DensityThematicStyleProvider

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

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

DensityThematicStyleProvider()

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

DensityThematicStyleProvider(other)

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

Параметры

other (DensityThematicStyleProvider) – Исходный объект DensityThematicStyleProvider, на базе которого необходимо сделать копию.

calculateMaximum(table)

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

Параметры

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

Результат

Максимальное значение по выражению по результатам анализа

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

QVariant

densitySizeParam()

Параметры плотности точек

Результат

Заданные ранее параметры

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

DensitySizeParam

densityStyleParam()

Установленное значение стиля заполнения

Результат

Структура со стилем оформления

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

DensityStyleParam

evaluator()

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

Результат

Выражение

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

FeatureExpressionEvaluator

setDensitySizeParam(value)

Задание новых параметров по плотности

Параметры

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

setDensityStyleParam(par)

Задание новых значений по стилю точек заполнения

Параметры

par (DensityStyleParam) – Новое значение

setEvaluator(expression)

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

Параметры

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

DensityThematicLayer

class axioma.render.DensityThematicLayer

Тематический слой с заполнением полигональных объектов точками, плотность которых зависит от вычисленного значения по выражению

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

DensityThematicLayer(parent)

Конструктор

Параметры

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

DensityThematicLayer(other)

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

Параметры

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

setStyleProvider(provider)

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

Параметры

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

styleProvider()

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

Результат

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

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

DensityThematicStyleProvider

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

# Импорт
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 addDensityThematic(layer):
    print("Density thematic..." )
    densityLayer = DensityThematicLayer(layer) # Создание самого слоя
    densityStyleProvider =  DensityThematicStyleProvider(densityLayer) # Стиль оформления
    evaluator = makeExpressionForWorld(layer, QObject().tr("Население"))
    if not evaluator.hasError():
        densityStyleProvider.setEvaluator(evaluator);
        maxVal = densityStyleProvider.calculateMaximum( layer.table()) # Максимальное значение
        densityStyleProvider.setDensitySizeParam(DensitySizeParam(100, maxVal)) # 100 точек для максимального значения
        styleParam = DensityStyleParam(DensityStyleParam.ftRound, Qt.red, UnitSize(Unit.point(), 3)) # Круглые красные точки в 3 пикселя
        densityStyleProvider.setDensityStyleParam(styleParam)
        densityLayer.setStyleProvider(densityStyleProvider) # Установка провайдера стиля
        addLayer(layer, densityLayer)