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