# IndividualThematicLayer - Индивидуальные значения

class axipy.IndividualThematicLayer

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

  Тематический слой с распределением стилей по индивидуальным значением.

  Параметры:

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

  Создание тематики с последующим добавлением ее к базовому слою.

      individual = IndividualThematicLayer("Страна")
      individual.assign_rainbow()
      world.thematic.add(individual)
      # Поменяем стиль оформления
      individual.set_style(0, PolygonStyle(45, Qt.blue))

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

  `create`(dataObject) | Создает слой на базе открытой таблицы или растра.

  Свойства:

  `coordsystem` | Возвращает координатную систему, в которой находятся данные, отображаемые слоем.
  `count` | Количество значений в тематике.
  `data_object` | Возвращает источник данных для слоя.
  `is_valid` | Возвращает признак валидности слоя.
  `max_zoom` | Устанавливает или возвращает максимальную ширину окна, при которой слой отображается на карте.
  `min_zoom` | Устанавливает или возвращает минимальную ширину окна, при которой слой отображается на карте.
  `opacity` | Устанавливает или возвращает прозрачность слоя в составе карты.
  `selectable` | Устанавливает или возвращает признак доступности выбора объектов слоя, если это поддерживается.
  `style_geometry_type` | Тип геометрического объекта для построения легенды.
  `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_style`(idx) | Стиль для указанного выражения.
  `get_value`(idx) | Выражение по указанному индексу.
  `set_style`(idx, style) | Установка стиля оформления для выражения по его индексу в списке выражений.

  Сигналы:

  `data_changed` | Сигнал об изменении контента слоя.
  `need_redraw` | Сигнал о необходимости перерисовать слой.

  Специальные методы:

  `__eq__`(other) | Оператор равенства (==).
  `__len__`() | Длина объекта (функция `len()`).
  `__repr__`() | Официальное строковое представление объекта при вызове `repr()`.
  `__str__`() | Неформальное строковое представление объекта при вызове `str` или `print()`.

  __eq__(other: object) → bool

    Оператор равенства (==).

  __len__() → int

    Длина объекта (функция `len()`).

  __repr__() → str

    Официальное строковое представление объекта при вызове `repr()`.

  __str__() → str

    Неформальное строковое представление объекта при вызове `str` или `print()`.

  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: Union[QColor, GlobalColor], colorMax: Union[QColor, GlobalColor], useHSV: bool = False)

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

    Параметры:

      - colorMin – Цвет нижнего диапазона.

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

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

  property coordsystem: CoordSystem

    Возвращает координатную систему, в которой находятся данные, отображаемые слоем.

  property count: int

    Количество значений в тематике.

  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_style(idx: int) → Style

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

    Параметры:

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

  get_value(idx: int) → Any

    Выражение по указанному индексу.

    Параметры:

      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 selectable: bool

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

  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 style_geometry_type: StyleGeometryType

    Тип геометрического объекта для построения легенды.

    Т.е. какой объект для отображения стиля будет представлен в легенде.

  property title: str

    Устанавливает или возвращает наименование слоя.

  property visible: bool

    Устанавливает или возвращает признак видимости слоя.

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

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

  property zoom_restrict: bool

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

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