MapReportItem¶
-
class
axioma.render.
MapReportItem
¶ Элемент отчета, основанный на созданной ранее карте. Т.е. перед созданием элемента отчета необходимо предварительно создать карту, на основе которой будет создан элемент отчета.
Унаследован от:
ReportItem
-
MapReportItem
(map, viewPort, report)¶ Конструктор
- Параметры
map (
Map
) – Элемент типа карта, на основании которой создается элемент отчета.viewPort (
MapViewport
) – Задание MapViewport области видимости карты и ее размер в отчете.report (
Report
) – Отчет, к которому относится создаваемый элемент.
-
coordSystem
()¶ Текущая координатная система карты
- Результат
Координатная система
- Тип результата
-
map
()¶ Элемент типа карта, на основании которой создается элемент отчета.
- Результат
Карта
- Тип результата
-
setCenter
(pnt)¶ Установка нового центра карты в координатах карты
- Параметры
pnt (
QPointF
) – Новое значение центра
-
setViewport
(vp)¶ Установка нового значения MapViewport для элемента отчета
- Параметры
vp (
MapViewport
) – Новое значение
-
viewport
()¶ Установленное соотношение области карты и его размеров в отчете
- Результат
Установленное значение 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) # Показ центроидов # Сделаем так, чтобы метки не перекрывали друг друга policy = props.labelPlacementPolicy() policy.labelingType = LabelPlacementPolicy.DisallowOverlap props.setLabelPlacementPolicy(policy) 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)