From baaf3c3f37984fd2bb026422b0d1991c35db6714 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 11 三月 2023 09:53:45 +0800
Subject: [PATCH] 1

---
 ExportMap/Sources/xyz.py |   60 +++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/ExportMap/Sources/xyz.py b/ExportMap/Sources/xyz.py
index 5570db6..79ce975 100644
--- a/ExportMap/Sources/xyz.py
+++ b/ExportMap/Sources/xyz.py
@@ -5,6 +5,7 @@
 import os
 import sys
 import time
+
 sys.path.append(r"C:\Program Files\QGIS 3.16\apps\qgis-ltr\python\plugins")
 import math
 import argparse
@@ -27,8 +28,10 @@
     parser = argparse.ArgumentParser(description='ArgUtils')
     parser.add_argument("-src", type=str, default=get_full_path(), required=False)
     parser.add_argument("-qgz", type=str, default="xyz.qgz", required=False)
-    parser.add_argument("-file", type=str, default=r"D:\xyz\dq.txt", required=False)
-    parser.add_argument("-out", type=str, default=r"D:\xyz\tiles\dq", required=False)
+    parser.add_argument("-file", type=str, default=r"D:\xyz\cn.txt", required=False)
+    parser.add_argument("-out", type=str, default=r"D:\xyz\tiles\cn", required=False)
+    parser.add_argument("-min", type=int, default=4, required=False)
+    parser.add_argument("-max", type=int, default=8, required=False)
 
     return parser.parse_args()
 
@@ -102,6 +105,35 @@
     return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax)
 
 
+# 鑾峰彇XYZ鍙傛暟
+def getXYZOps(args, level):
+    return {
+        'BACKGROUND_COLOR': QColor(0, 0, 0, 0),
+        'DPI': 96,
+        'EXTENT': args.ext,
+        'METATILESIZE': 4,
+        'OUTPUT_DIRECTORY': args.out,
+        'OUTPUT_HTML': args.out + "\\view.html" if args.min == level else 'TEMPORARY_OUTPUT',
+        'QUALITY': 100,
+        'TILE_FORMAT': 0,
+        'TILE_HEIGHT': 256,
+        'TILE_WIDTH': 256,
+        'TMS_CONVENTION': True,
+        'ZOOM_MAX': level,
+        'ZOOM_MIN': level
+    }
+
+
+# 鍒涘缓XYZ鐡︾墖
+def createXYZ(args):
+    import processing
+
+    for i in range(args.min, args.max + 1):
+        ops = getXYZOps(args, i)
+        print(ops)
+        processing.run("qgis:tilesxyzdirectory", ops)
+
+
 # 鍒濆鍖�
 def init():
     # QgsApplication.setPrefixPath("C:\Program Files\QGIS 3.16", True)
@@ -115,27 +147,10 @@
     print("FileName: " + prj.fileName())
 
     loadLayers(prj, args)
-    ext = getExtent(prj)
-    prj.writePath(args.file.replace(".txt", ".qgz"))
+    prj.write(args.file.replace(".txt", ".qgz"))
 
-    import processing
-    ops = {
-        'BACKGROUND_COLOR': QColor(0, 0, 0, 0),
-        'DPI': 96,
-        'EXTENT': ext,
-        'METATILESIZE': 4,
-        'OUTPUT_DIRECTORY': args.out,
-        'OUTPUT_HTML': args.out + "\\view.html",
-        'QUALITY': 100,
-        'TILE_FORMAT': 0,
-        'TILE_HEIGHT': 256,
-        'TILE_WIDTH': 256,
-        'TMS_CONVENTION': True,
-        'ZOOM_MAX': 18,
-        'ZOOM_MIN': 4
-    }
-    print(ops)
-    processing.run("qgis:tilesxyzdirectory", ops)
+    args.ext = getExtent(prj)
+    createXYZ(args)
 
     qgs.exitQgis()
 
@@ -145,4 +160,3 @@
     timer = time.time()
     init()
     print(f'鑰楁椂:{time.time() - timer:.2f}s')
-

--
Gitblit v1.9.3