From 50155d2d6da56ac59a672755a704ed1503ffe3f6 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期四, 19 六月 2025 10:07:18 +0800
Subject: [PATCH] 修复返回的模拟结果中最大最小水深问题

---
 src/main/java/com/se/nsl/helper/ComHelper.java |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/se/nsl/helper/ComHelper.java b/src/main/java/com/se/nsl/helper/ComHelper.java
index 9946591..fe10817 100644
--- a/src/main/java/com/se/nsl/helper/ComHelper.java
+++ b/src/main/java/com/se/nsl/helper/ComHelper.java
@@ -2,10 +2,7 @@
 
 import com.se.nsl.domain.dto.*;
 import lombok.extern.slf4j.Slf4j;
-import org.gdal.gdal.Band;
-import org.gdal.gdal.Dataset;
-import org.gdal.gdal.WarpOptions;
-import org.gdal.gdal.gdal;
+import org.gdal.gdal.*;
 import org.gdal.gdalconst.gdalconst;
 import org.gdal.ogr.Geometry;
 import org.gdal.ogr.ogr;
@@ -70,6 +67,37 @@
         destDs.delete();
     }
 
+    public static void Resample(Dataset ds, Integer targetEpsg, String dest, Double destNoData, String wkt, Integer width, Integer height) {
+        Vector<String> vector = new Vector<>();
+        if (targetEpsg != null) {
+            //vector.add("-s_srs");
+            //vector.add("EPSG:" + 4548);
+            vector.add("-t_srs");
+            vector.add("EPSG:" + targetEpsg);
+        }
+        //if (destNoData != null) {
+        //    vector.add("-dstnodata");
+        //    vector.add("" + destNoData);
+        //}
+        if (wkt != null) {
+            vector.add("-cutline");
+            vector.add(wkt);
+            vector.add("-crop_to_cutline");
+        }
+        if (width != null && height != null) {
+            vector.add("-ts");
+            vector.add("" + width);
+            vector.add("" + height);
+        }
+        vector.add("-r");
+        vector.add("bilinear"); // 鍙岀嚎鎬ф彃鍊�
+        vector.add("-of");
+        vector.add("GTiff");
+
+        Dataset destDs = gdal.Warp(dest, new Dataset[]{ds}, new WarpOptions(vector));
+        if (null != destDs) destDs.delete();
+    }
+
     public static void Resample2(Dataset ds, String dest, int width, int height, LayerDto layer) {
         Vector<String> vector = new Vector<>();
         vector.add("-s_srs");
@@ -87,7 +115,8 @@
         //vector.add("-te_srs");
         //vector.add("EPSG:" + 4326);
         vector.add("-r");
-        vector.add("average");
+//        vector.add("average");
+        vector.add("cubic");
         vector.add("-of");
         vector.add("GTiff");
         WarpOptions warpOptions = new WarpOptions(vector);

--
Gitblit v1.9.3