Layer
=================

.. currentmodule:: axioma.render

.. class:: Layer

	.. note:: Абстрактный

	Абстрактный базовый класс для слоя карты. Для создания слоя нужного типа необходимо использовать функцию :meth:`~axioma.render.Render.createLayerForDataObject`, передав ей объект данных.\
	Пример можно посмотреть :meth:`~axioma.render.Map`

	Унаследован от: :class:`~axioma.render.MapItem`

	От него наследуются: :class:`RasterLayerWithProperties`, :class:`LayerGroup`, :class:`LayerWithThematic`

		.. py:method:: Layer(dataObject,  parent)

			Конструктор

			:param dataObject: Ссылка на источник данных.
			:type dataObject: :class:`~axioma.core.dp.DataObject`
			:param parent: Родительский объект.
			:type parent: :class:`~PyQt5.QtCore.QObject`

		.. py:method:: Layer(other)

			Копирующий конструктор

			:param other: Исходный слой, на базе которого создается слой.
			:type other: :class:`~axioma.render.Layer`

		.. py:method:: render(context)

			Отрисовка слоя.

			:param context: Контекст рисования.
			:type context: :class:`~axioma.render.MapContext`

		.. py:method:: renderVector(context)

			Отрисовка слоя без использования временных растровых представлений, которые используются при ускорении работы отрисовки в случае, если контент не поменялся. Данный метод может быть использован при отрисовке в формат SVG (см. :class:`~axioma.render.VectorMapRenderer`)

			:param context: Контекст рисования.
			:type context: :class:`~axioma.render.MapContext`

		.. py:method:: coordSystem()

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

			:return: Ссылка на КС
			:rtype: :class:`~axioma.cs.CoordSystem`

		.. py:method:: deviceUnitSize(context)

			Получение цены пикселя для координатной системы слоя (можно использовать для округления координат).

			:param context: Контекст рисования.
			:type context: :class:`~axioma.render.MapContext`
			:return: Цена пикселя по абсциссе и ординате
			:rtype: :class:`~PyQt5.QtCore.QSizeF`

		.. py:method:: deviceUnitSize(viewport, csMap)

			Получение цены пикселя для координатной системы слоя (можно использовать для округления координат).

			:param viewport: Область видимости.
			:type viewport: :class:`~axioma.render.Viewport`
			:param csMap: Координатная система карты (области видимости).
			:type csMap: :class:`~axioma.cs.CoordSystem`
			:return: Цена пикселя по абсциссе и ординате
			:rtype: :class:`~PyQt5.QtCore.QSizeF`

		.. py:method:: canRenderInCS(cs)

			Определяет, можно ли нарисовать слой в переданной КС.

			:param cs: КС для проверки
			:type cs: :class:`~axioma.cs.CoordSystem`
			:return: True, если можно отрисовать слой в переданной КС, иначе False.
			:rtype: :class:`bool`

		.. py:method:: boundingRect()

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

			:return: Ограничивающий прямоугольник и координатная система
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. py:method:: canBeSelectable()

			Поддерживает ли слой возможность выделения информации

			:return: True, если слой может иметь выделение, иначе False.
			:rtype: :class:`bool`

		.. py:method:: canBeEditable(op = OpUpdate)

			Возможность выбора слоя для редактирования.

			:return: True, если слой может быть выбран как редактируемый, иначе False.
			:rtype: :class:`bool`
			:param op: Тип запрашиваемой операции: вставка, изменение или удаление. По умолчанию - изменение.
			:type op: :class:`~axioma.core.dp.TypeOper`

		.. py:method:: selectable()

			Находится ли слой в режиме выделения в данный момент; зависит от видимости и флага выделения

			:return: True, если слой находится в режиме выделения, иначе False. Если canBeSelectable False, то возвращается в любом случае False
			:rtype: :class:`bool`

		.. py:method:: selectableFlag()

			Установлен ли флаг выделения для слоя.

			:return: True, если флаг установлен, иначе False.
			:rtype: :class:`bool`

		.. py:method:: setSelectableFlag(val)

			Установка для слоя в режим выделения.

			:param val: Логическое значение
			:type val: :class:`bool`

		.. py:method:: dataObject()

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

			:return: Ссылка на источник данных.
			:rtype: :class:`~axioma.core.dp.DataObject`

		.. py:method:: layerIcon()

			Ассоциированная со слоем иконка.

			:return: Растр.
			:rtype: :class:`~PyQt5.QtGui.QIcon`

		.. py:staticmethod:: makeGeometryTransform(context, coordSystem)

			Возвращает матрицу преобразования объекта в экранные координаты

			:param context: Контекст рисования
			:type context: :class:`~axioma.render.MapContext`
			:param coordSystem: Исходная координатная система
			:type coordSystem: :class:`~axioma.cs.CoordSystem`
			:return: Матрицу преобразования
			:rtype: :class:`~axioma.core.geometry.GeometryTransform`
