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