ThematicIndividualStyleParam ============================= .. currentmodule:: axioma.render .. class:: ThematicIndividualStyleParam Параметры для значения у тематического слоя по индивидуальным значениям. Содержит значение и соответствующий ему стиль оформления Унаследован от: :class:`ThematicColoredStyleParam` .. py:method:: ThematicIndividualStyleParam() Конструктор с пустыми значениями .. py:method:: ThematicIndividualStyleParam(value, color) Конструктор :param value: Значение. :type value: :class:`~PyQt5.QtCore.QVariant` :param color: Цвет оформления. :type color: :class:`~PyQt5.QtGui.QColor` Конструктор. Инициализирует параметр с заданным стилем. См. :meth:`~axioma.render.ThematicColoredStyleParam.ThematicColoredStyleParam` :param value: Значение. :type value: :class:`~PyQt5.QtCore.QVariant` :param style: Стиль для значения :type style: :class:`~axioma.render.Style` .. py:attribute:: value Значение :type: :class:`~PyQt5.QtCore.QVariant` IndividualThematicStyleProvider ================================ .. currentmodule:: axioma.render .. class:: IndividualThematicStyleProvider Класс провайдера стилей для тематического слоя :class:`IndividualThematicLayer`. Унаследован от: :class:`ThematicStyleProvider`, :class:`SplittingThematic` .. py:method:: IndividualThematicStyleProvider(layer) Конструктор :param layer: Ссылка на тематический слой, к которому привязан данный провайдер стилей. :type layer: :class:`~axioma.render.ThematicLayer` .. py:method:: IndividualThematicStyleProvider(other) Копирующий конструктор :param other: Исходный экземпляр, на базе которого создается текущий экземпляр объекта. :type other: :class:`IndividualThematicStyleProvider` .. py:method:: reallocateColorByValues(preserveOldStyles = True) Перераспределение стилей по цвету. Цвет подбирается случайным образом. Дальнейшее переопределение возможно (см. пример ниже). :param preserveOldStyles: Сохранение существующих стилей. Применяется, когда количество значений увеличилось, хо есть желание оставить существующие стили текущими. Если False, стили переопределяются на случайные по цвету. :type preserveOldStyles: :class:`bool` .. py:method:: thematicStyleParamsList() Возвращается список параметров по существующим значениям. :return: Список параметров. :rtype: :class:`list` [:class:`ThematicIndividualStyleParam`] .. py:method:: setThematicStyleParamsList(list) Замена существующего списка параметров по интервалам новым. :param list: Новый список с параметрами. :type list: :class:`list` [:class:`ThematicIndividualStyleParam`] .. py:method:: setThematicStyleParam(index, param) Замена существующего набора параметров конкретного значения по его индексу. :param index: Индекс параметра. :type index: :class:`int` :param param: Новые параметры заданного значения. :type param: :class:`ThematicIndividualStyleParam` .. py:method:: thematicStyleParam(index) Получение параметров необходимого значения по его индексу. :param index: Индекс требуемого параметра. :type index: :class:`int` :return: Параметры запрашиваемого интервала. :rtype: :class:`~axioma.render.ThematicIndividualStyleParam` .. py:method:: thematicStyleParamCount() Количество полученных параметров (значений). :return: Количество параметров. :rtype: :class:`int` .. py:method:: defaultStyle() Возвращает коллекцию стилей оформления (по типам объектов), заданный по умолчанию. В дальнейшем для каждого значения стиль можно переопределить :return: Коллекцию стилей :rtype: :class:`~axioma.render.CollectionStyle` .. py:method:: setDefaultStyle(style) Переопределение стилей по-умолчанию :param style: Новый набор стилей оформления :type style: :class:`CollectionStyle` IndividualThematicLayer ======================= .. currentmodule:: axioma.render .. class:: IndividualThematicLayer Тематический слой с распределением стилей по индивидуальным значением Унаследован от: :class:`~axioma.render.ThematicLayer` .. py:method:: IndividualThematicLayer(parent) Конструктор :param parent: Ссылка на слой, на базе которого создается данный тематический слой. :type parent: :class:`FeatureLayer` .. py:method:: IndividualThematicLayer(other) Копирующий конструктор :param other: Исходный слой, на базе которого создается новый слой. :type other: :class:`IndividualThematicLayer` .. py:method:: styleProvider() Возвращает текущий провайдер стилей для слоя. :return: Копия провайдера стиля, установленного для слоя на данный момент :rtype: :class:`~axioma.render.IndividualThematicLayer` .. py:method:: setStyleProvider(provider) Устанавливает новый провайдер стилей для слоя. :param provider: Новый провайдер стилей. :type provider: :class:`IndividualThematicLayer` Пример использования: .. 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 addIndividualThematic(layer): individualLayer = IndividualThematicLayer(layer) # Создание самого слоя individualLayer.setName(QObject().tr("Континенты по цветам")) # Имя слоя individualStyleProvider = IndividualThematicStyleProvider(individualLayer) # Стиль оформления evaluator = makeExpressionForWorld(layer, QObject().tr("Континент")) if not evaluator.hasError(): individualStyleProvider.setEvaluator(evaluator) individualStyleProvider.initValuesFromTable( layer.table()) # чтение из таблицы individualStyleProvider.reallocateColorByValues() if individualStyleProvider.thematicStyleParamCount(): # Заменим у первого цвет на желтый param0 = individualStyleProvider.thematicStyleParam(0) param0.setColor(Qt.yellow) individualStyleProvider.setThematicStyleParam( 0, param0) if individualStyleProvider.thematicStyleParamCount() > 1: # Заменим у второго стиль на строку MapBasic param1 = individualStyleProvider.thematicStyleParam(1) # Создаем стиль из строки MapBasic style = MapBasicStyle().styleFromString("Brush (2,16776960,16777215) Pen (1,2,0)") # Заменяем стиль param1.style().setStyle(PolygonalGeometryClass(), style) individualStyleProvider.setThematicStyleParam( 1, param1) individualLayer.setStyleProvider(individualStyleProvider) # Установка провайдера стиля addLayer(layer, individualLayer)