| | |
| | | from qgis.PyQt.QtXml import * |
| | | |
| | | |
| | | def setChild(project, root, showLayers): |
| | | def setLayersValid(root, showLayers): |
| | | print('Group: ' + root.name()) |
| | | for node in root.children(): |
| | | # QgsLayerTreeLayer |
| | | if isinstance(node, QgsLayerTreeGroup): |
| | | setChild(project, node, showLayers) |
| | | setChild(node, showLayers) |
| | | # QgsRasterLayer, QgsVectorLayer |
| | | else: |
| | | name = node.layer().name() |
| | |
| | | doc.setContent(template_content) |
| | | layout.loadFromTemplate(doc, QgsReadWriteContext(), True) |
| | | |
| | | map = layout.itemById(r'地图') |
| | | # map = layout.itemById(r'地图') |
| | | map = layout.referenceMap() |
| | | print('1:' + str(math.ceil(map.scale()))) |
| | | |
| | | # "阀室", "站场", "管道中心线", "矢量注记", "矢量图", "影像注记", "影像图" |
| | | showLayers = ["站场", "管道中心线", "矢量注记", "矢量图"] |
| | | root = project.layerTreeRoot() |
| | | setChild(project, root, showLayers) |
| | | showLayers = ["阀室", "管道中心线", "影像注记", "影像图"] |
| | | # root = project.layerTreeRoot() |
| | | # setLayersValid(project, root, showLayers) |
| | | for layer in project.mapLayers().values(): |
| | | flag = layer.name() in showLayers |
| | | if not flag: |
| | | layer.setValid(flag) |
| | | print(layer.name() + ": " + str(flag)) |
| | | |
| | | layout.refresh() |
| | | map.refresh() |
| | | |
| | | exporter = QgsLayoutExporter(layout) |
| | | img_path = os.path.join(r"E:/terrait/TianJin/LFServer/QGIS", "render.png") |