管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-03-11 baaf3c3f37984fd2bb026422b0d1991c35db6714
1
已修改1个文件
60 ■■■■■ 文件已修改
ExportMap/Sources/xyz.py 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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')