VectorLayer - Векторный слой

class axipy.VectorLayer

Базовые классы: Layer

Слой, основанный на базе векторных данных.

Примечание

Создание слоя производится посредством метода вызова Layer.create()

Примеры работы со свойствами слоя.
# Зададим в качестве формулы метки атрибут "Страна" и запретим перекрытие меток друг другом:
world.label.text = "Страна"
world.label.placementPolicy = LabelOverlap.DisallowOverlap
# Задание стиля оформления слоя
style_lay = Style.from_mapinfo("Pen (1, 2, 0) Brush (8, 255) Symbol (33,255,14)")
world.overrideStyle = style_lay
# Для сброса переопределения достаточно задать значение None
world.overrideStyle = None

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

create(dataObject)

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

Свойства:

coordsystem

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

data_object

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

hotlink

Наименование атрибута таблицы для хранения гиперссылки.

is_valid

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

label

Метки слоя.

linesDirectionVisibile

Показ направлений линий.

max_zoom

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

min_zoom

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

nodesVisible

Показ узлов линий и полигонов.

opacity

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

overrideStyle

Переопределяемый стиль слоя.

showCentroid

Показ центроидов на слое.

thematic

Перечень тематик для данного слоя.

title

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

visible

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

zoom_restrict

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

Методы:

get_bounds()

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

Сигналы:

data_changed

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

need_redraw

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

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

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

Наименование атрибута таблицы для хранения гиперссылки.

Возможны следующие варианты

Значение

Описание

axioma://world.tab

Открывает файл или рабочее пространство в аксиоме

addlayer://world

Добавляет слой world в текущую карту

exec://gimp

Запускает на выполнение программу gimp

https://axioma-gis.ru/

Открывает ссылку в браузере

Если префикс отсутствует, то производится попытка запустить по ассоциации.

property is_valid: bool

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

property label: Label

Метки слоя. В качестве формулы может использоваться или наименование поля таблицы или выражение.

property linesDirectionVisibile: bool

Показ направлений линий.

property max_zoom: float

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

property min_zoom: float

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

property need_redraw: Signal

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

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

Signal[]

property nodesVisible: bool

Показ узлов линий и полигонов.

property opacity: int

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

property overrideStyle: Style

Переопределяемый стиль слоя. Если задан как None (по умолчанию), объекты будут отображены на основании оформления источника данных.

property showCentroid: bool

Показ центроидов на слое.

property thematic: ListThematic

Перечень тематик для данного слоя. Работа с тематическими слоями похожа на работу со списком list.

Пример.
# Создадим тематический слой
range1 = RangeThematicLayer("Население")
# Добавим в основной слой
world.thematic.append(range1)
# Получим добавленный тематический слой
range1 = world.thematic[0]
# Просмотр всех тематик слоя
for t in world.thematic:
    print('thematic:', t.title)
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