SymbolLimits ================= .. currentmodule:: axioma.render .. class:: SymbolLimits Лимиты значений (интервал) для рассматриваемого символа .. py:attribute:: minimum Минимальное значение :type: :class:`~PyQt5.QtCore.QVariant` .. py:attribute:: maximum Максимальное значение :type: :class:`~PyQt5.QtCore.QVariant` SymbolThematicStyleProvider =========================== .. currentmodule:: axioma.render .. class:: SymbolThematicStyleProvider Класс провайдера стилей для тематического слоя :class:`SymbolThematicLayer` в виде круговой диаграммы. Унаследован от: :class:`ThematicStyleProvider`, :class:`AllocationThematic` .. py:method:: SymbolThematicStyleProvider(layer, hmin=6, hmax=20) Конструктор :param layer: Ссылка на тематический слой, к которому привязан данный провайдер стилей. :type layer: :class:`~axioma.render.ThematicLayer` :param hmin: Минимальная высота символа. По-умолчанию равно 6 :type hmin: :class:`int` :param hmax: Максимальная высота символа. По-умолчанию равно 20 :type hmax: :class:`int` .. py:method:: defaultStyle() Стиль символа для отображения тематики :return: Стиль :rtype: PointStyle .. py:method:: setDefaultStyle(style) Установка стиля оформления для тематики :param style: Стиль :type style: :class:`PointStyle` .. py:method:: minHeight() Минимальная высота символа :return: Значение :rtype: :class:`int` .. py:method:: setMaxHeight(value) Задание минимальной высоты символа :param value: Новое значение :type value: :class:`float` .. py:method:: maxHeight() Максимальная высота символа :return: Значение :rtype: :class:`int` .. py:method:: setMaxHeight(value) Задание максимальной высоты символа :param value: Новое значение :type value: :class:`float` .. py:method:: evaluator() Заданное выражение для вычисления значения по данным таблицы :return: Выражение :rtype: :class:`~axioma.core.sql.FeatureExpressionEvaluator` .. py:method:: setEvaluator(expression) Задание выражение для вычисления значения по данным таблицы :param expression: Задание выражения, по которому будут вычисляться значения при анализе таблицы. :type expression: :class:`~axioma.core.sql.FeatureExpressionEvaluator` .. py:method:: calculateLimitsValues(table) Чтение значений из таблицы и расчет интервала значений по выражению. Результат выполнения используется для задания интервалов посредством метода setLimitsValues :param table: Таблица, из которой читаются значения по заданному ранее выражению. :type table: :class:`~axioma.core.dp.Table` :return: Существующие пределы по выражению по результатам анализа :rtype: :class:`SymbolLimits` .. py:method:: limitValues() Установленные пределы значений по данным. :return: Значения :rtype: :class:`SymbolLimits` .. py:method:: setLimitsValues(values) Установка пределов значений. Для расчета можно воспользоваться методом calculateLimitsValues :param values: Новые ограничения :type values: :class:`SymbolLimits` SymbolThematicLayer ==================== .. currentmodule:: axioma.render .. class:: SymbolThematicLayer Тематический слой с распределением по интервалам и с градуировкой символа по размеру Унаследован от: :class:`~axioma.render.ThematicLayer` .. py:method:: SymbolThematicLayer(parent) Конструктор :param parent: Ссылка на слой, на базе которого создается данный тематический слой. :type parent: :class:`FeatureLayer` .. py:method:: SymbolThematicLayer(other) Копирующий конструктор :param other: Исходный слой, на базе которого создается новый слой. :type other: :class:`SymbolThematicLayer` .. py:method:: styleProvider() Возвращает текущий провайдер стилей для слоя. :return: Копия провайдера стиля, установленного для слоя на данный момент :rtype: :class:`~axioma.render.SymbolThematicStyleProvider` .. py:method:: setStyleProvider(provider) Устанавливает новый провайдер стилей для слоя. :param provider: Новый провайдер стилей. :type provider: :class:`SymbolThematicStyleProvider` Пример использования: .. 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 addSymbolThematic(layer): symbolLayer = SymbolThematicLayer(layer) # Создание самого слоя symbolStyleProvider = SymbolThematicStyleProvider(symbolLayer) # Стиль оформления evaluator = makeExpressionForWorld(layer, QObject().tr("Население")) if not evaluator.hasError(): symbolStyleProvider.setEvaluator(evaluator); limitsValues = symbolStyleProvider.calculateLimitsValues( layer.table()) # Расчет предельных значений symbolStyleProvider.setLimitsValues(limitsValues) fs = FontSymbolStyle() fs.setColor(Qt.red) symbolStyleProvider.setDefaultStyle(fs) # Стиль точечного объекта symbolStyleProvider.setMaxHeight(24) # Максимальная высота символа symbolLayer.setStyleProvider(symbolStyleProvider) # Установка провайдера стиля addLayer(layer, symbolLayer)