From 30fcf79d96ae5e8923f5b78bcc1ec4ac56aa6ae6 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期三, 19 四月 2023 10:34:11 +0800
Subject: [PATCH] 1

---
 ExportMap/cs/XYZUtils.cs                   |    2 +-
 ExportMap/Controllers/ConvertController.cs |   18 ++++++++++++++++--
 ExportMap/Models/XYZArgs.cs                |    5 +++++
 ExportMap/Sources/xyz.py                   |    7 ++++---
 4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/ExportMap/Controllers/ConvertController.cs b/ExportMap/Controllers/ConvertController.cs
index 9f2d007..25aedd8 100644
--- a/ExportMap/Controllers/ConvertController.cs
+++ b/ExportMap/Controllers/ConvertController.cs
@@ -67,11 +67,25 @@
                 {
                     return ResponseMsg<string>.fail("浠ょ墝鏃犳晥");
                 }
-                if (args.min < 0 || args.max > 20 || args.min > args.max || string.IsNullOrWhiteSpace(args.dircode))
+                if (string.IsNullOrWhiteSpace(args.dircode))
                 {
-                    return ResponseMsg<string>.fail("杈撳叆鐨勫弬鏁版湁璇�");
+                    return ResponseMsg<string>.fail("鍗曚綅浠g爜涓嶈兘涓虹┖");
                 }
 
+                if (args.min < 0) args.min = 0;
+                if (args.min > 22) args.min = 22;
+                if (args.max < 0) args.max = 0;
+                if (args.max > 22) args.max = 22;
+                if (args.min > args.max)
+                {
+                    int tmp = args.min;
+                    args.min = args.max;
+                    args.max = tmp;
+                }
+
+                if (args.noData < 0) args.noData = 0;
+                if (args.noData > 255) args.noData = 255;
+
                 string err = null;
                 List<int> rs = XYZUtils.Generate(args, ref err);
                 if (null == rs || rs.Count == 0)
diff --git a/ExportMap/Models/XYZArgs.cs b/ExportMap/Models/XYZArgs.cs
index 87553f9..a77f071 100644
--- a/ExportMap/Models/XYZArgs.cs
+++ b/ExportMap/Models/XYZArgs.cs
@@ -41,6 +41,11 @@
         public int max { set; get; }
 
         /// <summary>
+        /// 鏃犳暟鎹�
+        /// </summary>
+        public int noData { set; get; }
+
+        /// <summary>
         /// 鏁版嵁鐩綍缂栫爜
         /// </summary>
         public string dircode { set; get; }
diff --git a/ExportMap/Sources/xyz.py b/ExportMap/Sources/xyz.py
index 1bb5aae..30a053c 100644
--- a/ExportMap/Sources/xyz.py
+++ b/ExportMap/Sources/xyz.py
@@ -28,10 +28,11 @@
     parser = argparse.ArgumentParser(description='ArgUtils')
     parser.add_argument("-src", type=str, default=get_full_path(), required=False)
     parser.add_argument("-qgz", type=str, default=r"xyz.qgz", required=False)
-    parser.add_argument("-file", type=str, default=r"D:\xyz\zy.txt", required=False)
-    parser.add_argument("-out", type=str, default=r"D:\xyz\tiles\zy", required=False)
+    parser.add_argument("-file", type=str, default=r"D:\xyz\4.5g\tif.txt", required=False)
+    parser.add_argument("-out", type=str, default=r"D:\xyz\4.5g\png", required=False)
     parser.add_argument("-min", type=int, default=12, required=False)
     parser.add_argument("-max", type=int, default=18, required=False)
+    parser.add_argument("-noData", type=int, default=0, required=False)
 
     return parser.parse_args()
 
@@ -68,7 +69,7 @@
             prj.setCrs(layer.crs())
 
         for j in range(1, layer.bandCount() + 1):
-            layer.dataProvider().setNoDataValue(j, 0)
+            layer.dataProvider().setNoDataValue(j, args.noData)
 
         prj.addMapLayer(layer)
 
diff --git a/ExportMap/cs/XYZUtils.cs b/ExportMap/cs/XYZUtils.cs
index dc814b4..b9fddfd 100644
--- a/ExportMap/cs/XYZUtils.cs
+++ b/ExportMap/cs/XYZUtils.cs
@@ -92,7 +92,7 @@
 
             WriteText(tifFile, list);
 
-            string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max);
+            string cmd = string.Format("python \"{0}\" -qgz {1} -file \"{2}\" -out \"{3}\" -min {4} -max {5} -noData {6}", PyFile, Qgz, tifFile, xyzPath, args.min, args.max, args.noData);
 
             //err = Tools.ExecCmd(GetCmds(batFile, cmd));            
             err = Tools.ExecCmd(cmd, true);

--
Gitblit v1.9.3