RasterReportItem

class axioma.render.RasterReportItem

Элемент отчета, основанный на созданной растровом слое. Т.е. перед созданием элемента отчета необходимо предварительно создать растровый слой на базе локального файла или же растра, размещенного на Web ресурсе. И уже на основе этого слоя создать элемент отчета.

Унаследован от: ReportItem

RasterReportItem(layer, rect, report, perserveAspectRatio=True)

Конструктор

Параметры:
  • layer (RasterLayer) – Растровый слой, на основании которого создается элемент отчета.
  • rect (QRectF) – Прямоугольник элемента отчета в координатах отчета.
  • report (Report) – Отчет, к которому относится создаваемый элемент.
  • perserveAspectRatio (bool) – Сохранять исходное соотношение размеров растра. По-умолчанию True
RasterReportItem(layer, rect, report, perserveAspectRatio=True)

Конструктор

Параметры:
  • layer (RasterLayer) – Растровый слой, на основании которого создается элемент отчета.
  • viewPort (Viewport) – Задание Viewport области видимости растра и его размер в отчете.
  • report (Report) – Отчет, к которому относится создаваемый элемент.
  • perserveAspectRatio (bool) – Сохранять исходное соотношение размеров растра. По-умолчанию True
rectRaster()

Прямоугольник исходного растра

Результат:Прямоугольник
Тип результата:QRect
viewport()

Установленное соотношение области растра и его размеров в отчете

Результат:Установленное значение Viewport
Тип результата:Viewport
setViewport(vp)

Установка нового значения Viewport для элемента отчета

Параметры:vp (Viewport) – Новое значение
layer()

Растровый слой, на основании которого создается элемент отчета.

Результат:Ссылка на переданный в конструктор растровый слой
Тип результата:RasterLayer
preserveAspectRatio()

Сохранять пропорции исходного растра для элемента отчета

Результат:True, если да. В противном случае False
Тип результата:bool
setPreserveAspectRatio(preserveAspectRatio)

Установка режима сохранения пропорций исходного растра. Если установлено True, при задании ограничивающего прямоугольника элемента отчета, его пропорции подгоняются исходя из пропорций базового растра.

Параметры:preserveAspectRatio (bool) – Значение

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

 # Импорт
from axioma.render import *
from axioma.mapinfo import *
from axioma.core.dp import *

# Создание элемента отчета типа растр из URL. Для локального файла использовать FileDefinition вместо WebDefinition
def createRasterItem(report):
    print('Растр...')
    dp = axioma.app.gui.dataProviderById("GdalDataProvider") # находим необходимый провайдер
    url = "https://upload.wikimedia.org/wikipedia/en/7/72/World_Map_WSF.svg.png" # Исходный растр
    if dp is not None:
        try:
            definition = WebDefinition(QUrl(url))
            rds = dp.openDataSource(definition) # Создаем источник данных
            obj = rds.openDataObject() # Создаем объект типа растр
            if (isinstance(obj, Raster)):
                lay = RasterLayer(obj) # Создаем растровый слой на базе существующего объекта
                rraster = QRectF(130, 0, 210, 145)
                rasterItem = RasterReportItem(lay, rraster, report)
                report.addItem(rasterItem) # Добавляем в отчет
            else:
                print('Объект не является растром. Что то пошло не так')
        except Exception as ex:
            print(ex)