From a2a1b640b35ff095807069e63571faa3fdd4f659 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 09 十一月 2022 15:29:53 +0800
Subject: [PATCH] 1

---
 ExportMap/Sources/render.py |   45 +++++++++++++++++++++++++++++----------------
 1 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/ExportMap/Sources/render.py b/ExportMap/Sources/render.py
index 66a5acc..21b2bc7 100644
--- a/ExportMap/Sources/render.py
+++ b/ExportMap/Sources/render.py
@@ -1,5 +1,6 @@
 #!/usr/bin/env
 # -*- coding: utf-8 -*-
+import os
 import sys
 import math
 import argparse
@@ -11,11 +12,16 @@
 from qgis.PyQt.QtXml import *
 
 
+# 鑾峰彇瀹屾暣璺緞
+def get_full_path():
+    return os.path.split(sys.argv[0])[0]
+
+
 # 鑾峰彇鍙傛暟
-def getArgs():
-    argv = sys.argv[1:]
-    print("argv = ", argv)
+def get_args():
+    print("argv = ", sys.argv[1:])
     parser = argparse.ArgumentParser(description='ArgUtils')
+    parser.add_argument("-src", type=str, default=get_full_path(), required=False)
     parser.add_argument("-qgz", type=str, default="Test.qgz", required=False)
     parser.add_argument("-qpt", type=str, default="Test.qpt", required=False)
 
@@ -23,9 +29,9 @@
 
 
 # 璁剧疆鍥惧眰鍙敤鎬�
-def setLayersValid(project, showLayers):
-    for layer in project.mapLayers().values():
-        flag = layer.name() in showLayers
+def set_layers_valid(prj, show_layers):
+    for layer in prj.mapLayers().values():
+        flag = layer.name() in show_layers
         print(layer.name() + ": " + str(flag))
         # if not flag:
         # project.removeMapLayer(layer)
@@ -33,39 +39,42 @@
 
 
 # 璁剧疆鍥惧眰鍙鎬�
-def setItemVisibility(root, showLayers):
-    print(root.name() + ': Group')
-    for node in root.children():
+def set_item_visibility(root_node, show_layers):
+    print(root_node.name() + ': Group')
+    for node in root_node.children():
         # QgsLayerTreeLayer
         if isinstance(node, QgsLayerTreeGroup):
-            setItemVisibility(node, showLayers)
+            set_item_visibility(node, show_layers)
         # QgsRasterLayer, QgsVectorLayer
         else:
             name = node.layer().name()
             flag = name in showLayers
             print(name + ": " + str(flag))
             # if not flag:
-            # root.removeLayer(node.layer())
+            # root_node.removeLayer(node.layer())
             # node.layer().setValid(False)
             node.setItemVisibilityChecked(flag)
 
 
+# 鍒濆鍖�
 # QgsApplication.setPrefixPath(r"E:/terrait/TianJin/LFServer/QGIS/", True)
 qgs = QgsApplication([], True)
 qgs.initQgis()
 
-args = getArgs()
+# 鍔犺浇宸ョ▼
+args = get_args()
 project = QgsProject.instance()
 # project.read(r'Test.qgz')
-project.read(args.qgz)
+project.read(os.path.join(args.src, args.qgz))
 print("FileName: " + project.fileName())
 
 # layout = QgsPrintLayout(project)
 layout = QgsLayout(project)
 # layout.initializeDefaults()
 
+# 鍔犺浇妯℃澘
 # with open(r'Test.qpt', 'r', encoding='utf-8') as f:
-with open(args.qpt, 'r', encoding='utf-8') as f:
+with open(os.path.join(args.src, args.qpt), 'r', encoding='utf-8') as f:
     template_content = f.read()
 doc = QDomDocument()
 doc.setContent(template_content)
@@ -75,19 +84,23 @@
 map = layout.referenceMap()
 print('1:' + str(math.ceil(map.scale())))
 
+# 璁剧疆鍥惧眰
 # "闃�瀹�", "绔欏満", "绠¢亾涓績绾�", "鐭㈤噺娉ㄨ", "鐭㈤噺鍥�", "楂樺痉褰卞儚娉ㄨ", "楂樺痉褰卞儚", "褰卞儚娉ㄨ", "褰卞儚鍥�"
 # showLayers = ["闃�瀹�", "绠¢亾涓績绾�", "鐭㈤噺娉ㄨ", "鐭㈤噺鍥�"]
 showLayers = layout.customProperty("layers").split(',')
 root = project.layerTreeRoot()
-# setLayersValid(project, showLayers)
-setItemVisibility(root, showLayers)
+# set_layers_valid(project, showLayers)
+set_item_visibility(root, showLayers)
 
+# 鍒锋柊
 layout.refresh()
 map.refresh()
 
+# 瀵煎嚭
 exporter = QgsLayoutExporter(layout)
 # img_path = os.path.join(r"E:/terrait/TianJin/LFServer/QGIS", "render.png")
 img_path = layout.customProperty("imgPath")
 exporter.exportToImage(img_path, QgsLayoutExporter.ImageExportSettings())
 
+# 閫�鍑�
 qgs.exitQgis()

--
Gitblit v1.9.3