axioma.render.DensitySizeParam¶Параметры, описывающие количество (плотность) точек и соответствующее им вычисленное значение выражения.
axioma.render.DensityStyleParam¶Вид (стиль) точек, которыми будет заполняться площадной объект
Форма точки FormType:¶Наименование величины Значение Описание ftRound 0 Круглая ftSquare 1 Квадратная
DensityStyleParam()¶Конструктор со значениями по-умолчанию (черные круглые точки размером 1)
DensityStyleParam(form, color, size)Конструктор
Параметры:
- form (
FormType) – Вид формы точки.- color (
QColor) – Цвет точки- size (
UnitSize) – Размер точки
formType¶Вид формы точки.
Type: FormType
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
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)