axioma.render.
MapReportItem
¶Элемент отчета, основанный на созданной ранее карте. Т.е. перед созданием элемента отчета необходимо предварительно создать карту, на основе которой будет создан элемент отчета.
Унаследован от: ReportItem
MapReportItem
(map, viewPort, report)¶Конструктор
Параметры:
- map (
Map
) – Элемент типа карта, на основании которой создается элемент отчета.- viewPort (
MapViewport
) – Задание MapViewport области видимости карты и ее размер в отчете.- report (
Report
) – Отчет, к которому относится создаваемый элемент.
map
()¶Элемент типа карта, на основании которой создается элемент отчета.
Результат: Карта Тип результата: Map
setCenter
(pnt)¶Установка нового центра карты в координатах карты
Параметры: pnt ( QPointF
) – Новое значение центра
coordSystem
()¶Текущая координатная система карты
Результат: Координатная система Тип результата: CoordSystem
viewport
()¶Установленное соотношение области карты и его размеров в отчете
Результат: Установленное значение MapViewport Тип результата: MapViewport
setViewport
(vp)¶Установка нового значения MapViewport для элемента отчета
Параметры: vp ( MapViewport
) – Новое значение
viewportChanged
(vp)¶[signal] Сигнал, возникающий при смене области видимости
Параметры: vp ( MapViewport
) – Значение MapViewport
Пример использования:
# Создание элемента отчета типа карта. Берем первую из открытых # Так же возможно создать элемент отчета не на базе MapView, создав временную карту (см. renderer.py) def createMapItem(report): print('Карта...') if axioma.app.mainWindow.mapViewManager().mapViewCount(): try: mapview = axioma.app.mainWindow.mapViewManager().currentMapView() # Берем текущую открытую карту в системе r_map = mapview.viewport().sceneRect() w = 350; r_item = QRectF(2, 150, w, w * r_map.height() / r_map.width()) viewport = MapViewport(r_item, r_map, mapview.viewport().coordSystem()) #находим слой lay = mapview.map().rootLayerGroup().findChildByName("world") if lay is not None: props = lay.featureLayerProperties() #Свойства слоя props.setLabelingAttributeName("Страна") # устанавливаем выражение для метки props.setShowLabels(True) # Показ меток props.setCentroidsVisible(True) # Показ центроидов lay.setProperties(props) mapItem = MapReportItem(mapview.map(), viewport, report) report.addItem(mapItem) # Добавляем в отчет print('Масштабная линейка...') # Создание масштабной линейки ws = 30 bar_rect = QRectF(r_item.right() - ws, r_item.bottom(), ws,15) scaleBarReportItem = ScaleBarReportItem(mapview.map(), mapItem.viewport(), bar_rect, report) report.addItem(scaleBarReportItem) # Добавляем в отчет except Exception as ex: print(ex)