DensitySizeParam ================= .. currentmodule:: axioma.render .. class:: DensitySizeParam Параметры, описывающие количество (плотность) точек и соответствующее им вычисленное значение выражения. .. py:method:: DensitySizeParam() Конструктор с пустыми (нулевыми) значениями .. py:method:: DensitySizeParam(points, value) Конструктор :param points: Количество точек, заполняющих объект :type points: :class:`int` :param value: Максимальное значение, соответствующее данному количеству точек :type value: :class:`~PyQt5.QtCore.QVariant` DensityStyleParam ================= .. currentmodule:: axioma.render .. class:: DensityStyleParam Вид (стиль) точек, которыми будет заполняться площадной объект .. csv-table:: Форма точки :class:`FormType`: :header: "Наименование величины", "Значение", "Описание" ftRound, 0, "Круглая" ftSquare, 1, "Квадратная" .. py:method:: DensityStyleParam() Конструктор со значениями по-умолчанию (черные круглые точки размером 1) .. py:method:: DensityStyleParam(form, color, size) Конструктор :param form: Вид формы точки. :type form: :class:`FormType` :param color: Цвет точки :type color: :class:`QColor` :param size: Размер точки :type size: :class:`~axioma.render.UnitSize` .. py:attribute:: formType Вид формы точки. :type: FormType .. py:attribute:: color Цвет точки :type: :class:`~PyQt5.QtGui.QColor` .. py:attribute:: name Размер точки :type: :class:`~axioma.render.UnitSize` DensityThematicStyleProvider ============================= .. currentmodule:: axioma.render .. class:: DensityThematicStyleProvider Класс провайдера стилей для тематического слоя :class:`DensityThematicLayer`. Унаследован от: :class:`ThematicStyleProvider` .. py:method:: DensityThematicStyleProvider() Конструктор со значениями по-умолчанию .. py:method:: DensityThematicStyleProvider(other) Копирующий конструктор :param other: Исходный объект DensityThematicStyleProvider, на базе которого необходимо сделать копию. :type other: :class:`DensityThematicStyleProvider` .. py:method:: densitySizeParam() Параметры плотности точек :return: Заданные ранее параметры :rtype: :class:`~axioma.render.DensitySizeParam` .. py:method:: setDensitySizeParam(value) Задание новых параметров по плотности :param value: Новое значение :type value: :class:`~axioma.render.DensitySizeParam` .. py:method:: evaluator() Заданное выражение для вычисления значения по данным таблицы :return: Выражение :rtype: :class:`FeatureExpressionEvaluator` .. py:method:: setEvaluator(expression) Задание выражение для вычисления значения по данным таблицы :param expression: Задание выражения, по которому будут вычисляться значения при анализе таблицы. :type expression: :class:`FeatureExpressionEvaluator` .. py:method:: calculateMaximum(table) Чтение значений из таблицы и расчет максимального значения по выражению. Результат выполнения используется для задания плотности точек посредством метода setDensitySizeParam :param table: Таблица, из которой читаются значения по заданному ранее выражению. :type table: :class:`~axioma.core.dp.Table` :return: Максимальное значение по выражению по результатам анализа :rtype: :class:`~PyQt5.QtCore.QVariant` .. py:method:: setDensityStyleParam(par) Задание новых значений по стилю точек заполнения :param par: Новое значение :type par: :class:`DensityStyleParam` .. py:method:: densityStyleParam() Установленное значение стиля заполнения :return: Структура со стилем оформления :rtype: :class:`~axioma.render.DensityStyleParam` DensityThematicLayer ==================== .. currentmodule:: axioma.render .. class:: DensityThematicLayer Тематический слой с заполнением полигональных объектов точками, плотность которых зависит от вычисленного значения по выражению Унаследован от: :class:`~axioma.render.ThematicLayer` .. py:method:: DensityThematicLayer(parent) Конструктор :param parent: Ссылка на слой, на базе которого создается данный тематический слой. :type parent: :class:`FeatureLayer` .. py:method:: DensityThematicLayer(other) Копирующий конструктор :param other: Исходный слой, на базе которого создается новый слой. :type other: :class:`DensityThematicLayer` .. py:method:: styleProvider() Возвращает текущий провайдер стилей для слоя. :return: Копия провайдера стиля, установленного для слоя на данный момент :rtype: :class:`~axioma.render.DensityThematicStyleProvider` .. py:method:: setStyleProvider(provider) Устанавливает новый провайдер стилей для слоя. :param provider: Новый провайдер стилей. :type provider: :class:`DensityThematicStyleProvider` Пример использования: .. code-block:: python # Импорт 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)