管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-04-19 30fcf79d96ae5e8923f5b78bcc1ec4ac56aa6ae6
ExportMap/Sources/xyz.py
@@ -27,11 +27,12 @@
    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="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("-min", type=int, default=4, required=False)
    parser.add_argument("-qgz", type=str, default=r"xyz.qgz", required=False)
    parser.add_argument("-file", type=str, default=r"D:\xyz\4.5g\tif.txt", required=False)
    parser.add_argument("-out", type=str, default=r"D:\xyz\4.5g\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("-noData", type=int, default=0, required=False)
    return parser.parse_args()
@@ -68,7 +69,7 @@
            prj.setCrs(layer.crs())
        for j in range(1, layer.bandCount() + 1):
            layer.dataProvider().setNoDataValue(j, 0)
            layer.dataProvider().setNoDataValue(j, args.noData)
        prj.addMapLayer(layer)
@@ -120,21 +121,22 @@
# 获取XYZ参数
def getXYZOps(args, level):
def getXYZOps(args):
    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',
        # 'OUTPUT_HTML': 'TEMPORARY_OUTPUT',
        'OUTPUT_HTML': args.out + "\\view.html",
        'QUALITY': 100,
        'TILE_FORMAT': 0,
        'TILE_HEIGHT': 256,
        'TILE_WIDTH': 256,
        'TMS_CONVENTION': True,
        'ZOOM_MAX': level,
        'ZOOM_MIN': level
        'TMS_CONVENTION': False,
        'ZOOM_MAX': args.max,
        'ZOOM_MIN': args.min
    }
@@ -142,10 +144,9 @@
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)
    ops = getXYZOps(args)
    print(ops)
    processing.run("qgis:tilesxyzdirectory", ops)
# 初始化
@@ -158,10 +159,11 @@
    args = get_args()
    prj = QgsProject.instance()
    prj.read(os.path.join(args.src, args.qgz))
    # prj.read(args.qgz)
    print("FileName: " + prj.fileName())
    loadLayers(prj, args)
    prj.write(args.file.replace(".txt", ".qgz"))
    # prj.write(args.file.replace(".txt", ".qgz"))
    args.ext = getExtent(prj)
    createXYZ(args)