Map
=================

.. currentmodule:: axioma.render

.. class:: Map

	Класс карты. Предназначен для предоставления доступа к своим элементам: слоям и группам слоев.

		.. py:method:: Map(parent=None)

			Конструктор

			:param parent: Родительский объект. При удалении владельца так же удаляется и сам элемент
			:type parent: :class:`~PyQt5.QtCore.QObject`

		.. py:method:: Map(layers, parent=None)

			Конструктор

			:param layers: Первоначальный список слоев для инициализации карты
			:type layers: :class:`list` [ :class:`Layer` ]
			:param parent: Родительский объект. При удалении владельца так же удаляется и сам элемент
			:type parent: :class:`~PyQt5.QtCore.QObject`

		.. py:method:: rootLayerGroup()

			Корневая группа слоев карты.

			:return: Группа слоев
			:rtype: :class:`RootLayerGroup`

		.. py:method:: renderSelection(context)

			Отрисовка выделения в карте

			:param context: Контекст, в котором будет отрисовано выделение
			:type context: :class:`~axioma.render.Context`

		.. py:method:: findBestCoordSys()

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

			:return: Координатная система
			:rtype: :class:`~axioma.cs.CoordSystem`

		.. py:method:: boundingRect(cs)

			Определение области карты.

			:param `~axioma.cs.CoordSystem` cs: КС для области
			:return: Область карты, в которую попадают все слои
			:rtype: :class:`~axioma.core.dp.GeoRect`

		.. py:method:: canRenderAllLayersInCS(cs)

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

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

		.. py:method:: editableLayer()

			Редактируемый слой карты

			:return: Слой или :any:`None`, если таковой отсутствует
			:rtype: :class:`Layer`

		.. py:method:: setEditableLayer(layer)

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

			:param layer: Слой, который нужно сделать редактируемым.
			:type layer: :class:`Layer`

		.. py:method:: flatLayerList()

			Список слоев карты.

			:return: "Плоский" список слоев карты со всех уровней вложенности
			:rtype: :class:`list` [ :class:`Layer` ]

		.. py:method:: mapProperties()

			Текущие настройки карты.

			:return: Настройки
			:rtype: :class:`MapProperties`

		.. py:method:: setMapProperties(mapProperties)

			Установка настроек карты.

			:param mapProperties: Новый набор настроек
			:type mapProperties: :class:`MapProperties`

		.. py:method::hidden: cloneForRendering()

		.. py:method:: labelContainer()

			Контейнер параметров подписывания (ссылка)

			:return: контейнер параметров подписывания
			:rtype: :class:`~axioma.render.FeatureLabelContainer`

		.. method:: needRedraw()

			[signal] Сигнал испускается, когда необходимо перерисовать содержимое карты.

		.. method:: visibilityChanged()

			[signal] Сигнал испускается, когда меняются параметры видимости содержимого карты.

		.. method:: editableLayerChanged()

			[signal] Сигнал испускается, когда производится смена редактируемого слоя.
			
		.. method:: editableLayerChanging(oldLayer)

			[signal] Сигнал испускается непосредственно перед сменой редактируемого слоя
			
			:param oldLayer: Слой, который является редактируемым до смены
			:type oldLayer: :class:`~axioma.render.Layer`


Пример использования:

.. literalinclude:: ../../../../../examples/renderer.py
	:language: python
	:linenos:

