From 676892f591be011d2e41f309d7e3ee809f412f0d Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期一, 07 八月 2023 17:26:55 +0800
Subject: [PATCH] 1

---
 ExportMap/Sources/xyz.py |   74 +++++++++++++------------------------
 1 files changed, 26 insertions(+), 48 deletions(-)

diff --git a/ExportMap/Sources/xyz.py b/ExportMap/Sources/xyz.py
index acb3e18..0fd93f1 100644
--- a/ExportMap/Sources/xyz.py
+++ b/ExportMap/Sources/xyz.py
@@ -28,18 +28,18 @@
     parser = argparse.ArgumentParser(description='ArgUtils')
     parser.add_argument("-src", type=str, default=get_full_path(), required=False)
     parser.add_argument("-qgz", type=str, default=r"xyz.qgz", required=False)
-    parser.add_argument("-file", type=str, default=r"D:\xyz\domtt\tif.txt", required=False)
-    parser.add_argument("-out", type=str, default=r"D:\xyz\domtt\png", required=False)
+    parser.add_argument("-file", type=str, default=r"D:\xyz\dom0.2m\tif.txt", required=False)
+    parser.add_argument("-out", type=str, default=r"D:\xyz\dom0.2m\png", required=False)
     parser.add_argument("-min", type=int, default=12, required=False)
-    parser.add_argument("-max", type=int, default=18, required=False)
+    parser.add_argument("-max", type=int, default=15, required=False)
     parser.add_argument("-noData", type=int, default=0, required=False)
 
     return parser.parse_args()
 
 
 # 璇诲彇鏂囨湰鏂囦欢
-def readTxt(filePath):
-    f = open(filePath, encoding="utf-8")
+def read_txt(path):
+    f = open(path, encoding="utf-8")
     lines = f.readlines()
     f.close()
 
@@ -50,12 +50,12 @@
 
 
 # 鍔犺浇鍥惧眰
-def loadLayers(prj, args):
+def load_layers(prj, args):
     for layer in prj.mapLayers().values():
         prj.removeMapLayer(layer)
 
-    args.authid = None
-    lines = readTxt(args.file)
+    args.crs = None
+    lines = read_txt(args.file)
     for i in range(0, len(lines)):
         if len(lines[i]) == 0:
             continue
@@ -67,8 +67,8 @@
             continue
 
         if len(prj.mapLayers()) == 0:
-            args.authid = layer.crs().authid()
-            print("authid: " + args.authid)
+            args.crs = layer.crs()
+            print("authid: " + args.crs.authid())
             prj.setCrs(layer.crs())
 
         for j in range(1, layer.bandCount() + 1):
@@ -88,33 +88,36 @@
         self.ymin = ymin
         self.ymax = ymax
 
+
 # 鑾峰彇杈圭晫
-def getExtent(prj, args):
+def get_extent(prj, args):
     ex = None
     for layer in prj.mapLayers().values():
         rect = layer.extent()
         if ex is None:
+            # print(layer.extent().asWktCoordinates()); geo = QgsGeometry.fromWkt(layer.extent().asWktPolygon())
             ex = Rectangle(rect.xMinimum(), rect.xMaximum(), rect.yMinimum(), rect.yMaximum())
             continue
 
-        if args.authid != layer.crs().authid():
-            transform = QgsCoordinateTransform(QgsCoordinateReferenceSystem(layer.crs().authid()), QgsCoordinateReferenceSystem(args.authid), prj)
+        if args.crs.authid() != layer.crs().authid():
+            transform = QgsCoordinateTransform(layer.crs(),  args.crs, prj)
             min = QgsPoint(rect.xMinimum(), rect.yMinimum())
             max = QgsPoint(rect.xMaximum(), rect.yMaximum())
             min.transform(transform)
             max.transform(transform)
 
-            setRectBound(ex, min.x(), min.y(), max.x(), max.y())
+            set_rect_bound(ex, min.x(), min.y(), max.x(), max.y())
 
         else:
-            setRectBound(ex, rect.xMinimum(), rect.yMinimum(), rect.xMaximum(), rect.yMaximum())
+            set_rect_bound(ex, rect.xMinimum(), rect.yMinimum(), rect.xMaximum(), rect.yMaximum())
 
     # 123543.6722,2730986.0671,2732253.9315,3552923.0518 [EPSG:32643]
     # return '38400309.1314,38403253.7083,3559920.4768,3561690.3144 [CGCS2000 / 3-degree Gauss-Kruger zone 38]'
-    return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax) + ' [' + args.authid + "]"
+    return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax) + ' [' + args.crs.authid() + "]"
+
 
 # 璁剧疆鐭╁舰杈圭晫
-def setRectBound(ex, xmin, ymin, xmax, ymax):
+def set_rect_bound(ex, xmin, ymin, xmax, ymax):
     if xmin < ex.xmin:
         ex.xmin = xmin
     if ymin < ex.ymin:
@@ -125,33 +128,8 @@
         ex.ymax = ymax
 
 
-def getExtent2(prj, args):
-    ex = None
-    for layer in prj.mapLayers().values():
-        rect = layer.extent()
-        print(layer.name() + ", " + rect.toString() + ", " + layer.crs().authid())
-
-        if ex is None:
-            ex = Rectangle(rect.xMinimum(), rect.xMaximum(), rect.yMinimum(), rect.yMaximum())
-            # print(layer.extent().asWktCoordinates())
-            geo = QgsGeometry.fromWkt(layer.extent().asWktPolygon())
-            continue
-
-        if rect.xMinimum() < ex.xmin:
-            ex.xmin = rect.xMinimum()
-        if rect.yMinimum() < ex.ymin:
-            ex.ymin = rect.yMinimum()
-        if rect.xMaximum() > ex.xmax:
-            ex.xmax = rect.xMaximum()
-        if rect.yMaximum() > ex.ymax:
-            ex.ymax = rect.yMaximum()
-
-    # '-3640.3675,1734588.1947,2434663.1477,3677421.7047 [EPSG:32643]'
-    return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax) + ' [' + args.authid + "]"
-
-
 # 鑾峰彇XYZ鍙傛暟
-def getXYZOps(args):
+def get_xyz_ops(args):
     ops = {
         'BACKGROUND_COLOR': QColor(0, 0, 0, 0),
         'DPI': 96,
@@ -174,10 +152,10 @@
 
 
 # 鍒涘缓XYZ鐡︾墖
-def createXYZ(args):
+def create_xyz(args):
     import processing
 
-    ops = getXYZOps(args)
+    ops = get_xyz_ops(args)
     processing.run("qgis:tilesxyzdirectory", ops)
 
 
@@ -194,11 +172,11 @@
     # prj.read(args.qgz)
     print("FileName: " + prj.fileName())
 
-    loadLayers(prj, args)
+    load_layers(prj, args)
     # prj.write(args.file.replace(".txt", ".qgz"))
 
-    args.ext = getExtent(prj, args)
-    createXYZ(args)
+    args.ext = get_extent(prj, args)
+    create_xyz(args)
 
     qgs.exitQgis()
 

--
Gitblit v1.9.3