管道基础大数据平台系统开发-【CS】-ExportMap
1
13693261870
2023-04-21 c47fa10dda775e94840549bf990a297bd218529c
1
已修改1个文件
66 ■■■■ 文件已修改
ExportMap/Sources/xyz.py 66 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ExportMap/Sources/xyz.py
@@ -60,7 +60,7 @@
        if len(lines[i]) == 0:
            continue
        print("layer: " + lines[i])
        print("layer_" + str(i) + ": " + lines[i])
        layer = QgsRasterLayer(lines[i], "layer_" + str(i))
        if not layer.isValid() or layer.crs() is None:
            print("layer_" + str(i) + ": failed to load!")
@@ -85,9 +85,54 @@
        self.ymin = ymin
        self.ymax = ymax
# 获取边界
def getExtent(prj, args):
    ex = None
    for layer in prj.mapLayers().values():
        rect = layer.extent()
        if ex is None:
            ex = Rectangle(rect.xMinimum(), rect.xMaximum(), rect.yMinimum(), rect.yMaximum())
            continue
        if args.authid != layer.crs().authid():
            transform = QgsCoordinateTransform(QgsCoordinateReferenceSystem(layer.crs().authid()), QgsCoordinateReferenceSystem(args.authid), prj)
            min = QgsPoint(rect.xMinimum(), rect.yMinimum())
            max = QgsPoint(rect.xMaximum(), rect.yMaximum())
            min.transform(transform)
            max.transform(transform)
            if min.x() < ex.xmin:
                ex.xmin = min.x()
            if min.y() < ex.ymin:
                ex.ymin = min.y()
            if max.x() > ex.xmax:
                ex.xmax = max.x()
            if max.y() > ex.ymax:
                ex.ymax = max.y()
        else:
            if rect.xMinimum() < ex.xmin:
                ex.xmin = rect.xMinimum()
            if rect.yMinimum() < ex.ymin:
                ex.ymin = rect.yMinimum()
            if rect.xMaximum() > ex.xmax:
                ex.xmax = rect.xMaximum()
            if rect.yMaximum() > ex.ymax:
                ex.ymax = rect.yMaximum()
    # -3640.3675,1734588.1947,2434663.1477,3677421.7047 [EPSG:32643]
    # 123543.6722,2730986.0671,2732253.9315,3552923.0518 [EPSG:32643]
    return str(ex.xmin) + "," + str(ex.xmax) + "," + str(ex.ymin) + "," + str(ex.ymax) + ' [' + args.authid + "]"
# 获取坐标点
def setNewRect(ex, xmin, ymin, xmax, ymax):
    p = QgsPoint(x, y)
    return p
def getExtent2(prj, args):
    ex = None
    for layer in prj.mapLayers().values():
        rect = layer.extent()
@@ -95,6 +140,8 @@
        if ex is None:
            ex = Rectangle(rect.xMinimum(), rect.xMaximum(), rect.yMinimum(), rect.yMaximum())
            # print(layer.extent().asWktCoordinates())
            geo = QgsGeometry.fromWkt(layer.extent().asWktPolygon())
            continue
        if rect.xMinimum() < ex.xmin:
@@ -108,19 +155,6 @@
    # '-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
def getExtent2(prj):
    rt = None
    for layer in prj.mapLayers().values():
        if rt is None:
            rt = layer.extent()
            continue
        rt = rt.combineExtentWith(layer.extent())
    return str(rt.xMinimum()) + "," + str(rt.xMaximum()) + "," + str(rt.yMinimum()) + "," + str(rt.yMaximum())
# 获取XYZ参数
@@ -151,7 +185,7 @@
    import processing
    ops = getXYZOps(args)
    # processing.run("qgis:tilesxyzdirectory", ops)
    processing.run("qgis:tilesxyzdirectory", ops)
# 初始化