RangeThematicLayer - Интервалы

digraph geometry {
    node [shape="box", style=filled, fillcolor="lightgray"]
    rankdir=LR
    labelloc="t";
    label="Иерархия классов:";

    ThematicLayer  [ href="ThematicLayer.html#ref-label-thematiclayer-class" ];
    RangeThematicLayer  [ href="RangeThematicLayer.html#ref-label-rangethematiclayer-class" ];
    ReallocateThematicColor  [ href="ReallocateThematicColor.html#ref-label-reallocatecolorthematiclayer-class" ];
    StyledByIndexThematic  [ href="StyledByIndexThematic.html#ref-label-styledbythematicthematiclayer-class" ];

    ThematicLayer -> RangeThematicLayer;
    ReallocateThematicColor -> RangeThematicLayer
    StyledByIndexThematic -> RangeThematicLayer
}
class axipy.RangeThematicLayer

Базовые классы: ThematicLayer, StyledByIndexThematic, ReallocateThematicColor

Тематическое оформление слоя с распределением значений по интервалам. Для распределения цветов по заданным интервалам могут быть использованы функции assign_* класса ReallocateThematicColor в зависимости от требуемых целей.

Параметры:

expression – Наименование атрибута таблицы или выражение.

Пример создания тематики по интервалам.
# Пример создания тематики с последующим добавлением ее к базовому слою `world`
range1 = RangeThematicLayer("Население")
range1.ranges = 6
range1.splitType = RangeThematicLayer.EQUAL_COUNT
range1.assign_two_colors(Qt.red, Qt.cyan)
world.thematic.add(range1)
# Пример запроса с последующей заменой::
v = world.thematic[0].get_interval_value(2)  # Запрос
v = (999, v[1])  # Заменим минимальное значение для интервала с индексом 2
world.thematic[0].set_interval_value(2, v)  # Замена
# Различные виды распределения интервалов тематик по цветам
range1.assign_two_colors(Qt.red, Qt.yellow)
range1.assign_three_colors(Qt.yellow, Qt.cyan, Qt.green, 4)
range1.assign_rainbow()
range1.assign_gray(80, 100)

Классовые методы:

create(dataObject)

Создает слой на базе открытой таблицы или растра.

Свойства:

coordsystem

Координатная система, в которой находятся данные, отображаемые слоем.

data_object

Источник данных для слоя.

is_valid

Проверка на валидность объекта.

max_zoom

Максимальная ширина окна, при котором слой отображается на карте.

min_zoom

Минимальная ширина окна, при котором слой отображается на карте.

opacity

Прозрачность слоя в составе карты.

ranges

Количество интервалов.

selectable

Управляет доступностью для выбора объектов слоя, если это поддерживается.

splitType

Тип распределения значений по интервалам.

title

Наименование слоя.

visible

Управляет видимостью слоя.

zoom_restrict

Будет ли использоваться ограничение по отображению.

Методы:

assign_gray([minV, maxV])

Распределение в виде градации серого.

assign_monotone(color[, minv, maxv])

Монотонная заливка разной яркости (оттенки красного, синего и т.п.).

assign_rainbow([sequential, saturation, value])

Распределение цветов по спектру.

assign_three_colors(colorMin, colorMax, ...)

Цвет, распределенный между тремя заданными цветами (с разрывом).

assign_two_colors(colorMin, colorMax[, useHSV])

Равномерно распределяет оформление по заданным крайним цветам.

get_bounds()

Возвращает область, в которую попадают все данные, которые могут быть отображены на слое.

get_interval_value(idx)

Возвращает предельные значения для указанного интервала в виде пары значений.

get_style(idx)

Стиль для указанного выражения.

set_interval_value(idx, v)

Заменяет предельные значения интервала.

set_style(idx, style)

Установка стиля оформления для выражения по его индексу в списке выражений.

Сигналы:

data_changed

Сигнал об изменении контента слоя.

need_redraw

Сигнал о необходимости перерисовать слой.

assign_gray(minV: int = 20, maxV: int = 80)

Распределение в виде градации серого. Значение задается в интервале (0..100) от черного до белого.

Параметры:
  • minV – Минимальное значение.

  • maxV – Максимальное значение.

assign_monotone(color: QColor, minv: int = 20, maxv: int = 80)

Монотонная заливка разной яркости (оттенки красного, синего и т.п.). Цветовая схема HSL. Максимальное и минимальное значения задаются в интервале (0..100).

Параметры:
  • color – Базовый цвет.

  • minV – Минимальное значение.

  • maxV – Максимальное значение.

assign_rainbow(sequential: bool = True, saturation: float = 90, value: float = 90)

Распределение цветов по спектру. Цветовая схема HSV.

Параметры:
  • sequential – Если True, то последовательное распределение цветов. В противном случае распределение случайно.

  • saturation – Яркость. Задается в интервале (0..100)

  • value – Насыщенность. Задается в интервале (0..100)

assign_three_colors(colorMin: QColor, colorMax: QColor, colorBreak: QColor, br: int, useHSV: bool = True)

Цвет, распределенный между тремя заданными цветами (с разрывом).

Параметры:
  • colorMin – Цвет нижнего диапазона.

  • colorMax – Цвет верхнего диапазона.

  • colorBreak – Цвет на уровне разрыва.

  • br – Индекс интервала, на на котором используется цвет разрыва.

  • useHSV – Если True, то будет использоваться схема HSV. В противном случае - RGB.

assign_two_colors(colorMin: QColor, colorMax: QColor, useHSV: bool = False)

Равномерно распределяет оформление по заданным крайним цветам.

Параметры:
  • colorMin – Цвет нижнего диапазона.

  • colorMax – Цвет верхнего диапазона.

  • useHSV – Если True, то будет использоваться схема HSV. В противном случае - RGB.

property coordsystem: CoordSystem

Координатная система, в которой находятся данные, отображаемые слоем.

classmethod create(dataObject: DataObject) Layer

Создает слой на базе открытой таблицы или растра.

Параметры:

dataObject – Таблица или растр. В зависимости от переданного объекта будет создан VectorLayer или RasterLayer.

Пример создания слоя на базе файла.
# Векторный слой
table = provider_manager.openfile(filepath)
vector_layer = Layer.create(table)
# Подпишемся на обновление контента слоя
vector_layer.need_redraw.connect(lambda: print('Update layer'))
property data_changed: Signal

Сигнал об изменении контента слоя.

Тип результата:

Signal[]

property data_object: DataObject

Источник данных для слоя.

get_bounds() Rect

Возвращает область, в которую попадают все данные, которые могут быть отображены на слое.

get_interval_value(idx: int) Tuple[float, float]

Возвращает предельные значения для указанного интервала в виде пары значений.

Параметры:

idx – Индекс диапазона.

get_style(idx: int) Style

Стиль для указанного выражения.

Параметры:

idx – Порядковый номер выражения.

property is_valid: bool

Проверка на валидность объекта. Слой мог быть удален, как пример, в связи с закрытием таблицы

property max_zoom: float

Максимальная ширина окна, при котором слой отображается на карте. Учитывается только при установленном zoom_restrict=True

property min_zoom: float

Минимальная ширина окна, при котором слой отображается на карте. Учитывается только при установленном zoom_restrict=True

property need_redraw: Signal

Сигнал о необходимости перерисовать слой.

Тип результата:

Signal[]

property opacity: int

Прозрачность слоя в составе карты. Доступные значения от 0 до 100.

property ranges: int

Количество интервалов.

property selectable

Управляет доступностью для выбора объектов слоя, если это поддерживается.

set_interval_value(idx: int, v: Tuple[float, float])

Заменяет предельные значения интервала.

Параметры:
  • idx – Индекс диапазона.

  • v – Значение в виде пары.

set_style(idx: int, style: Style)

Установка стиля оформления для выражения по его индексу в списке выражений.

Параметры:
  • idx – Индекс.

  • style – Назначаемый стиль.

Пример установки стиля для значения с индексом 2 первого тематического слоя.
style_new = Style.from_mapinfo("Brush (2, 255, 0)")
world.thematic[0].set_style(2, style_new)
property splitType: int

Тип распределения значений по интервалам.

Допустимые значения:

Константа

Значение

Описание

EQUAL_INTERVAL

1

Распределение исходя из равномерности интервалов (по умолчанию).

EQUAL_COUNT

2

Распределение исходя их равного количества объектов в каждом интервале.

MANUAL

3

Ручное распределение значений путем задания пределов вручную.

property title: str

Наименование слоя.

property visible

Управляет видимостью слоя.

Выключение видимости верхнего слоя для активной карты:

if view_manager.active is not None:
    view_manager.active.map.layers[0].visible = False
property zoom_restrict: bool

Будет ли использоваться ограничение по отображению. Если установлено True, то для ограничения отображения слоя в зависимости от масштаба используются значения свойств zoom_min и zoom_max