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