From bc425adbda376e5ad30f269c0a9ebae2d12de44f Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 22 五月 2023 14:25:46 +0800 Subject: [PATCH] 1 --- ExportMap/Sources/merge.py | 17 +++++++++++++++++ ExportMap/cs/TerraUtils.cs | 29 +++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 0 deletions(-) diff --git a/ExportMap/Sources/merge.py b/ExportMap/Sources/merge.py index 274d3f6..3171edf 100644 --- a/ExportMap/Sources/merge.py +++ b/ExportMap/Sources/merge.py @@ -98,6 +98,22 @@ processing.run("gdal:merge", ops) +# 鑾峰彇涓績鐐瑰潗鏍� +def get_coord(prj, args): + layer = QgsRasterLayer(args.out, "layer_tif") + rect = layer.extent() + x = (rect.xMinimum() + rect.xMaximum()) / 2 + y = (rect.yMinimum() + rect.yMaximum()) / 2 + sid = layer.crs().authid() + + coord = str(x) + ", " + str(y) + ", " + str(sid) + print(coord) + + f = open(args.out.replace(".tif", "_cs.txt"), 'w') + f.write(coord) + f.close() + + # 鍒濆鍖� def init(): # QgsApplication.setPrefixPath("C:\Program Files\QGIS 3.16", True) @@ -113,6 +129,7 @@ load_layers(prj, args) merge(prj, args) + get_coord(prj, args) qgs.exitQgis() diff --git a/ExportMap/cs/TerraUtils.cs b/ExportMap/cs/TerraUtils.cs index e043bf9..993d961 100644 --- a/ExportMap/cs/TerraUtils.cs +++ b/ExportMap/cs/TerraUtils.cs @@ -258,6 +258,7 @@ meta.name = args.name; SysPublish sys = Tools.NewPublish(meta, args, GetReleaseUrl(args.dircode), "3d\\terrain\\" + args.dircode); + sys.geom = GetPointZ(args); int pubid = PubDBHelper.InsertPublish(sys); if (pubid > 0) @@ -277,5 +278,33 @@ return pubid; } + + /// <summary> + /// 鑾峰彇涓績鐐� + /// </summary> + private static string GetPointZ(XYZArgs args) + { + string dirPath = GetTerrainPath(args.dircode); + string txtFile = Path.Combine(dirPath, args.dircode + "_cs.txt"); + if (!File.Exists(txtFile)) return null; + + string[] strs = File.ReadAllLines(txtFile, Encoding.UTF8); + File.Delete(txtFile); + + if (null == strs || strs.Length == 0) return null; + string[] str = strs[0].Split(new string[] { ", " }, StringSplitOptions.None); + + int i = 18; + for (; i > -1; i--) + { + string path = Path.Combine(dirPath, i.ToString()); + if (Directory.Exists(path)) + { + break; + } + } + + return string.Format("ST_GeomFromText('POINT Z ({0} {1} {2})')", str[1], str[0], i); + } } } -- Gitblit v1.9.3