From bff584de802c085aeb6d18fc08557c4b68bbbecb Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 02 八月 2023 14:35:47 +0800
Subject: [PATCH] 1

---
 JavaCode/FrmSys.cs         |    2 +-
 JavaCode/App.config        |    4 ++--
 ExportMap/cs/TerraUtils.cs |   35 +++++++++++++++++++++++++++++++++--
 3 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/ExportMap/cs/TerraUtils.cs b/ExportMap/cs/TerraUtils.cs
index bdc0014..c4b370a 100644
--- a/ExportMap/cs/TerraUtils.cs
+++ b/ExportMap/cs/TerraUtils.cs
@@ -13,6 +13,8 @@
     {
         private static string pyFile;
 
+        public static int DEFAULT_MAX_LEVEL = 16;
+
         /// <summary>
         /// 鑾峰彇Python鏂囦欢
         /// </summary>
@@ -205,17 +207,46 @@
         }
 
         /// <summary>
+        /// 鑾峰彇鍦板舰鏈�澶х骇鍒�
+        /// </summary>
+        private static int GetTerrainMaxLevel(XYZArgs args, string tifFile)
+        {
+            string ctbPath = Tools.GetSetting("ctbPath");
+            string dirPath = GetTerrainPath(args.dircode);
+
+            string gdal_data = string.Format("set GDAL_DATA={0}\\data", ctbPath);
+            string createLayer = string.Format("{0}\\ctb-tile.exe -l -o \"{1}\" -f Mesh \"{2}\\{3}.tif\"", ctbPath, dirPath, dirPath, args.dircode);
+
+            Tools.ExecCmd(new List<string>() { gdal_data, createLayer });
+
+            string layerJson = Path.Combine(dirPath, "layer.json");
+            if (!File.Exists(layerJson)) return DEFAULT_MAX_LEVEL;
+
+            string[] lines = File.ReadAllLines(layerJson, Encoding.UTF8);
+
+            int level = -1;
+            foreach (string line in lines)
+            {
+                if (line.IndexOf("startX") > -1) level++;
+            }
+            if (File.Exists(layerJson)) File.Delete(layerJson);
+
+            return level;
+        }
+
+        /// <summary>
         /// 鍒涘缓楂樼▼鍒囩墖
         /// </summary>
         private static void CreateTerrain(XYZArgs args, string tifFile, ref string err)
         {
             string ctbPath = Tools.GetSetting("ctbPath");
             string dirPath = GetTerrainPath(args.dircode);
+            int maxLevel = GetTerrainMaxLevel(args, tifFile);
 
             string gdal_data = string.Format("set GDAL_DATA={0}\\data", ctbPath);
             // -N 椤剁偣娉曠嚎, -C 寮哄埗鍒涘缓缂哄け鏍圭摝鐗�, -R 涓嶈鐩栫幇鏈夋枃浠�
-            string createMesh = string.Format("{0}\\ctb-tile.exe -R -C -s 16 -o \"{1}\" -f Mesh \"{2}\\{3}.tif\"", ctbPath, dirPath, dirPath, args.dircode);
-            string createLayer = string.Format("{0}\\ctb-tile.exe -l -s 16 -o \"{1}\" -f Mesh \"{2}\\{3}.tif\"", ctbPath, dirPath, dirPath, args.dircode);
+            string createMesh = string.Format("{0}\\ctb-tile.exe -R -C -s {4} -o \"{1}\" -f Mesh \"{2}\\{3}.tif\"", ctbPath, dirPath, dirPath, args.dircode, maxLevel);
+            string createLayer = string.Format("{0}\\ctb-tile.exe -l -s {4} -o \"{1}\" -f Mesh \"{2}\\{3}.tif\"", ctbPath, dirPath, dirPath, args.dircode, maxLevel);
 
             List<string> list = new List<string>() { gdal_data, createMesh, createLayer };
             err = Tools.ExecCmd(list);
diff --git a/JavaCode/App.config b/JavaCode/App.config
index 152f377..16a5051 100644
--- a/JavaCode/App.config
+++ b/JavaCode/App.config
@@ -1,9 +1,9 @@
 <?xml version="1.0"?>
 <configuration>
   <appSettings>
-    <add key="pgConn" value="Server=127.0.0.1;Port=5433;Database=langfang;User Id=postgres;Password=postgres;"/>
+    <!--<add key="pgConn" value="Server=127.0.0.1;Port=5433;Database=langfang;User Id=postgres;Password=postgres;"/>-->
     <!--<add key="pgConn" value="Server=192.168.20.205;Port=5433;Database=langfang;User Id=postgres;Password=Postgres!_14_Lf;"/>-->
-    <!--<add key="pgConn" value="Server=192.168.20.83;Port=5433;Database=moon;User Id=postgres;Password=Postgres!_14_moon;"/>-->
+    <add key="pgConn" value="Server=192.168.20.83;Port=5433;Database=moon;User Id=postgres;Password=Postgres!_14_moon;"/>
   </appSettings>
   <startup> 
       <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
diff --git a/JavaCode/FrmSys.cs b/JavaCode/FrmSys.cs
index a635cca..fbc01f1 100644
--- a/JavaCode/FrmSys.cs
+++ b/JavaCode/FrmSys.cs
@@ -38,7 +38,7 @@
         private void btnReadTab_Click(object sender, EventArgs e)
         {
             string txtTab = this.txtTabPre.Text.Trim();
-            string sql = "select c.relname \"tab\", cast(obj_description(c.oid) as varchar) \"desc\", a.attnum \"num\", a.attname \"col\", t.typname \"type\", d.description \"bak\" from pg_attribute a left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type t on a.atttypid = t.oid where a.attnum >= 0 and c.relname like '" + txtTab + "%' and obj_description(c.oid) is not null and relnamespace=" + this.txtNS.Text.Trim() + " order by c.relname desc, a.attnum asc";
+            string sql = "select c.relname \"tab\", cast(obj_description(c.oid) as varchar) \"desc\", a.attnum \"num\", a.attname \"col\", t.typname \"type\", d.description \"bak\" from pg_attribute a left join pg_description d on d.objoid = a.attrelid and d.objsubid = a.attnum left join pg_class c on a.attrelid = c.oid left join pg_type t on a.atttypid = t.oid where a.attnum >= 0 and c.relname like '" + txtTab + "%' and attname not like '%pg.dropped%' and obj_description(c.oid) is not null and relnamespace=" + this.txtNS.Text.Trim() + " order by c.relname desc, a.attnum asc";
 
             DataTable dt = _dbHelper.GetDataTable(sql, null);
 

--
Gitblit v1.9.3