MapViewport ================= .. currentmodule:: axioma.render .. class:: MapViewport Реализация интерфейса :class:`ViewportInterface` для карты. Унаследован от: :class:`ViewportInterface` .. py:method:: MapViewport() Конструктор с пустыми значениями .. py:method:: MapViewport(deviceRect, sceneRect, cs) Конструктор с заданием параметров преобразования :param deviceRect: Область устройства рисования. :type deviceRect: :class:`~PyQt5.QtCore.QRectF` :param sceneRect: Область карты в координатах cs. :type sceneRect: :class:`~PyQt5.QtCore.QRectF` :param cs: Область карты в координатах cs. :type cs: :class:`~axioma.cs.CoordSystem` .. py:method:: MapViewport(deviceRect, georect) Конструктор с заданием параметров преобразования :param deviceRect: Область устройства рисования. :type deviceRect: :class:`~PyQt5.QtCore.QRectF` :param georect: Область карты в координатах cs и сама КС. :type georect: :class:`~axioma.core.dp.GeoRect` .. py:method:: zoom(unit) Ширина отображаемой области сцены в переданных единицах измерения расстояний текущей координатной системы :param unit: Единица измерения, в которой нам необходимо получить выходное значение. :type unit: :class:`~axioma.cs.LinearUnit` :return: Значение ширины :rtype: :class:`float` .. py:method:: setZoom(zoom) Установка нового значения ширины карты в единицах измерения метры :param zoom: Новое значение ширины. :type zoom: :class:`float` .. py:method:: setZoom(zoom, unit) Установка нового значения ширины карты с указанием единиц измерения :param zoom: Новое значение ширины. :type zoom: :class:`float` :param unit: Единицы измерения, в который задается параметр. :type unit: :class:`~axioma.cs.LinearUnit` .. py:method:: scale(dpi) Вычисление масштаба исходя из значения переданного dpi контекста :param dpi: Количество точек на дюйм анализируемого контекста :type dpi: :class:`int` :return: Рассчитанное значение :rtype: :class:`float` .. py:method:: pseudoZoom() В отличие от честного масштаба эта функция зависит не от расстояния от левого до правого края карты, а от разности координат левого и правого края. :return: Рассчитанное значение :rtype: :class:`float` .. py:method:: pseudoScale(dpi) Расчет zoom, аналогично с pseudoZoom :param dpi: Количество точек на дюйм анализируемого контекста Context :type dpi: :class:`int` :return: Рассчитанное значение :rtype: :class:`float` .. py:method:: coordSystem() Текущая координатная система. :return: Ссылка на КС :rtype: :class:`~axioma.cs.CoordSystem` .. py:method:: setCoordSystem(cs) Установка нового значения координатной системы. :param cs: Новое значение КС. Текущий rect карты при этом пересчитывается в новое значение :type cs: :class:`~axioma.cs.CoordSystem` .. py:method:: geoRect() Текущая координатная система вкупе с прямоугольником карты. :return: Ссылка на значение :rtype: :class:`~axioma.core.dp.GeoRect` .. py:method:: coeffYTransform(y) В случае, если текущая КС является КС типа Широта/Долгота, то при построении проекции на карте необходимо учитывать изменение цены градуса по широте. :param y: Рассматриваемая широта :type y: :class:`float` :return: Коэффициент изменения цены градуса по широте :rtype: :class:`float` .. py:method:: isLatLong() Проверка, является ли текущая КС типом Широта/Долгота :param y: Рассматриваемая широта :type y: :class:`float` :return: True, если да. В противном случае False :rtype: :class:`bool` .. py:method:: setUsingPseudoZoom(val) Устанавливает режим, при котором метод zoom возвращает то же значение, что и метод pseudoZoom. Этот режим влияет на определение видимости слоев и подписей на карте и предназначен для использования при программной отрисовке карты с помощью :class:`axioma.render.ConcurrentMapRenderer`, чтобы избежать изменения видимости слоев при сдвиге области карты. :param val: Значение активности режима :type val: :class:`bool`