From d45e75a608ce07a56cf82a829ce6bd740e672eeb Mon Sep 17 00:00:00 2001
From: wuww <252740454@qq.com>
Date: 星期二, 15 四月 2025 12:22:11 +0800
Subject: [PATCH] 添加png收集方法

---
 src/main/java/com/se/nsl/service/TestService.java |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/se/nsl/service/TestService.java b/src/main/java/com/se/nsl/service/TestService.java
index dc05269..c381cf7 100644
--- a/src/main/java/com/se/nsl/service/TestService.java
+++ b/src/main/java/com/se/nsl/service/TestService.java
@@ -224,7 +224,7 @@
     }
 
     public void setWaterHeight(LayerDto layer, List<String> files) {
-        files.parallelStream().forEach(file -> {
+        /*files.parallelStream().forEach(file -> {
             Dataset ds = null;
             try {
                 ds = gdal.Open(file, gdalconstConstants.GA_ReadOnly);
@@ -236,7 +236,24 @@
             } finally {
                 if (null != ds) ds.delete();
             }
-        });
+        });*/
+
+        int c = files.size();
+        int step = c <= 1 ? 1 : c / 10;
+        for (int i = 0; i < c; i += step) {
+            Dataset ds = null;
+            try {
+                ds = gdal.Open(files.get(i), gdalconstConstants.GA_ReadOnly);
+                if (null == ds || 0 == ds.getRasterCount()) return;
+
+                double[] mm = new double[2];
+                ds.GetRasterBand(1).ComputeRasterMinMax(mm, 0);
+                layer.getWaters().setHeight(mm[0], mm[1]);
+            } finally {
+                if (null != ds) ds.delete();
+            }
+        }
+
         layer.getExtension().setMaxHeight(layer.getExtension().getMaxHeight() + layer.getWaters().getMaxHeight());
         layer.getExtension().setMaxHeight(ComHelper.getMaxVal(layer.getExtension().getMaxHeight(), 1000000));
         layer.getExtension().setMinHeight(ComHelper.getMaxVal(layer.getExtension().getMinHeight(), 1000000));

--
Gitblit v1.9.3