FeatureLayer - Слой с векторными данными
==============================================

.. currentmodule:: axioma.render

.. class:: FeatureLayer

	Класс для слоя карты, который содержит векторные географические объекты.

	Унаследован от: :class:`LayerWithThematic`

	От него наследуются: :class:`TableLayer`, :class:`~axioma.render.ThematicLayer`

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

			Конструктор

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

		.. py:method:: visibleFeatures(georect, attributes)

			Возвращает курсор с записями, которые попадают в область видимости

			:param georect: Область карты в координатах cs и сама КС.
			:type georect: :class:`~axioma.core.dp.GeoRect`
			:param attributes: Список атрибутов, которые должны быть представлены в результирующем курсоре
			:type attributes: :class:`list` [ :class:`str` ]
			:return: Итератор
			:rtype: :class:`~axioma.core.dp.Cursor`

		.. py:method:: featureStyleProvider(context)

			Провайдер стилей для слоя

			:return: Провайдер стилей
			:rtype: :class:`~axioma.render.FeatureStyleProvider`

		.. py:method::hidden: featureStyleProvider_impl(context)

		.. py:method:: geometryAttributeName()

			Наименование геометрического атрибута, который будет отображаться на слое

			:return: Наименование геометрического атрибута
			:rtype: :class:`str`

		.. py:method:: drawFeatures(context, cursor, styleProvider, geomAttr, layerProperties=None)

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

			:param context: Контекст рисования
			:type context: :class:`~axioma.render.MapContext`
			:param cursor: Курсор с объектами
			:type cursor: :class:`~axioma.core.dp.Cursor`
			:param styleProvider: Провайдер стилей
			:type styleProvider: :class:`~axioma.render.FeatureStyleProvider`
			:param geomAttr: Имя геометрического атрибута
			:type geomAttr: :class:`str`
			:param geomAttr: Свойства слоя, если их необходимо переопределить
			:type geomAttr: :class:`~axioma.render.FeatureLayerProperties`

		.. py:method:: drawFeatureProperties(geometry, properties, context)

			.. deprecated:: >2.0.1
				не используйте этот метод напрямую; задавайте необходимые параметры \
				в свойствах слоя :class:`axioma.render.FeatureLayerProperties`
		
			Отрисовка геометрии с переданными свойствами 

			:param geometry: Геометрия
			:type geometry: :class:`~axioma.core.geometry.Geometry`
			:param geomAttr: Свойства слоя, с которыми необходимо отрисовать геометрию
			:type geomAttr: :class:`~axioma.render.FeatureLayerProperties`
			:param context: Контекст рисования
			:type context: :class:`~axioma.render.MapContext`

		.. py:method::hidden: drawCentroids(properties, table, context, geomAttributeIndex, id, geometry, geometryTransform)
		.. py:staticmethod::hidden: geometryCentroid(table, context, int geomAttributeIndex, id, geometry)

		.. py:method:: featureLayerProperties()

			Установленные свойства слоя

			:return: Свойства слоя
			:rtype: :class:`~axioma.render.FeatureLayerProperties`

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

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

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



