DensitySizeParam

class axioma.render.DensitySizeParam

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

DensitySizeParam()

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

DensitySizeParam(points, value)

Конструктор

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

DensityStyleParam

class axioma.render.DensityStyleParam

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

Форма точки FormType:
Наименование величины Значение Описание
ftRound 0 Круглая
ftSquare 1 Квадратная
DensityStyleParam()

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

DensityStyleParam(form, color, size)

Конструктор

Параметры:
  • form (FormType) – Вид формы точки.
  • color (QColor) – Цвет точки
  • size (UnitSize) – Размер точки
formType

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

Type:FormType
color

Цвет точки

Type:QColor
name

Размер точки

Type:UnitSize

DensityThematicStyleProvider

class axioma.render.DensityThematicStyleProvider

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

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

DensityThematicStyleProvider()

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

DensityThematicStyleProvider(other)

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

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

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

Результат:Заданные ранее параметры
Тип результата:DensitySizeParam
setDensitySizeParam(value)

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

Параметры:value (DensitySizeParam) – Новое значение
evaluator()

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

Результат:Выражение
Тип результата:FeatureExpressionEvaluator
setEvaluator(expression)

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

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

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

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

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

Параметры:par (DensityStyleParam) – Новое значение
densityStyleParam()

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

Результат:Структура со стилем оформления
Тип результата:DensityStyleParam

DensityThematicLayer

class axioma.render.DensityThematicLayer

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

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

DensityThematicLayer(parent)

Конструктор

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

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

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

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

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

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

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