| | |
| | | import time |
| | | |
| | | sys.path.append(r"C:\Program Files\QGIS 3.16\apps\qgis-ltr\python\plugins") |
| | | |
| | | import math |
| | | import argparse |
| | | from qgis.core import * |
| | |
| | | for layer in prj.mapLayers().values(): |
| | | prj.removeMapLayer(layer) |
| | | |
| | | args.crs = None |
| | | lines = read_txt(args.file) |
| | | for i in range(0, len(lines)): |
| | | if len(lines[i]) == 0: |
| | |
| | | strs = lines[i].split(",") |
| | | prefix = "__" if "1" == strs[1] else "_" |
| | | print("layer" + prefix + str(i) + ": " + strs[0]) |
| | | |
| | | layer = QgsRasterLayer(strs[0], "layer" + prefix + str(i)) |
| | | |
| | | if not layer.isValid() or layer.crs() is None: |
| | | print("layer" + prefix + str(i) + ": failed to load!") |
| | | continue |
| | | |
| | | if args.crs is None and len(layer.crs().authid()) > 0: |
| | | args.crs = layer.crs() |
| | | prj.setCrs(layer.crs()) |
| | | print("prj.authid: " + args.crs.authid()) |
| | | |
| | | for j in range(1, layer.bandCount() + 1): |
| | | try: |
| | |
| | | def create_xyz(prj, args): |
| | | import processing |
| | | |
| | | authid = args.crs.authid() |
| | | for layer in prj.mapLayers().values(): |
| | | if "layer__" in layer.id(): |
| | | continue |
| | | |
| | | e = layer.extent() |
| | | prj.setCrs(layer.crs()) |
| | | epsg = '' if layer.crs() is None else ' [' + layer.crs().authid() + ']' |
| | | args.ext = str(e.xMinimum()) + "," + str(e.xMaximum()) + "," + str(e.yMinimum()) + "," + str( |
| | | e.yMaximum()) + epsg |
| | | rect = layer.extent() |
| | | if authid != layer.crs().authid(): |
| | | transform = QgsCoordinateTransform(layer.crs(), args.crs, prj) |
| | | min = QgsPoint(rect.xMinimum(), rect.yMinimum()) |
| | | max = QgsPoint(rect.xMaximum(), rect.yMaximum()) |
| | | min.transform(transform) |
| | | max.transform(transform) |
| | | |
| | | args.ext = str(min.x()) + "," + str(max.x()) + "," + \ |
| | | str(min.y()) + "," + str(max.y()) + ' [' + authid + ']' |
| | | else: |
| | | args.ext = str(rect.xMinimum()) + "," + str(rect.xMaximum()) + "," + \ |
| | | str(rect.yMinimum()) + "," + str(rect.yMaximum()) + ' [' + authid + ']' |
| | | |
| | | ops = get_xyz_ops(args) |
| | | processing.run("qgis:tilesxyzdirectory", ops) |
| | | |