管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-04-21 a42b292673e42cc8f3635c59e1ef80d8dbac773e
1
已修改1个文件
29 ■■■■■ 文件已修改
ExportMap/Sources/xyz.py 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Sources/xyz.py
@@ -28,10 +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=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("-file", type=str, default=r"D:\xyz\china\tif.txt", required=False)
    parser.add_argument("-out", type=str, default=r"D:\xyz\china\png", required=False)
    parser.add_argument("-min", type=int, default=4, required=False)
    parser.add_argument("-max", type=int, default=8, required=False)
    parser.add_argument("-noData", type=int, default=0, required=False)
    return parser.parse_args()
@@ -54,6 +54,7 @@
    for layer in prj.mapLayers().values():
        prj.removeMapLayer(layer)
    args.authid = None
    lines = readTxt(args.file)
    for i in range(0, len(lines)):
        if len(lines[i]) == 0:
@@ -66,6 +67,8 @@
            continue
        if len(prj.mapLayers()) == 0:
            args.authid = layer.crs().authid()
            print("authid: " + args.authid)
            prj.setCrs(layer.crs())
        for j in range(1, layer.bandCount() + 1):
@@ -84,11 +87,11 @@
# 获取边界
def getExtent(prj):
def getExtent(prj, args):
    ex = None
    for layer in prj.mapLayers().values():
        rect = layer.extent()
        print(layer.name() + ", " + rect.toString())
        print(layer.name() + ", " + rect.toString() + ", " + layer.crs().authid())
        if ex is None:
            ex = Rectangle(rect.xMinimum(), rect.xMaximum(), rect.yMinimum(), rect.yMaximum())
@@ -103,8 +106,8 @@
        if rect.yMaximum() > ex.ymax:
            ex.ymax = rect.yMaximum()
    # '38399769,38403264,3558330,3561632'
    return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax)
    # '-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 + "]"
# 获取边界2
@@ -122,7 +125,7 @@
# 获取XYZ参数
def getXYZOps(args):
    return {
    ops = {
        'BACKGROUND_COLOR': QColor(0, 0, 0, 0),
        'DPI': 96,
        'EXTENT': args.ext,
@@ -138,6 +141,9 @@
        'ZOOM_MAX': args.max,
        'ZOOM_MIN': args.min
    }
    print(ops)
    return ops
# 创建XYZ瓦片
@@ -145,8 +151,7 @@
    import processing
    ops = getXYZOps(args)
    print(ops)
    processing.run("qgis:tilesxyzdirectory", ops)
    # processing.run("qgis:tilesxyzdirectory", ops)
# 初始化
@@ -165,7 +170,7 @@
    loadLayers(prj, args)
    # prj.write(args.file.replace(".txt", ".qgz"))
    args.ext = getExtent(prj)
    args.ext = getExtent(prj, args)
    createXYZ(args)
    qgs.exitQgis()