From 97b1a4298a3ba502c63e433db294e7e904be15f4 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 16 九月 2023 08:30:33 +0800
Subject: [PATCH] 元数据添加最值

---
 src/main/java/com/moon/server/service/data/ReadRasterService.java |   28 +++++++++++++++++++++++++++-
 1 files changed, 27 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moon/server/service/data/ReadRasterService.java b/src/main/java/com/moon/server/service/data/ReadRasterService.java
index 5202c78..2f1ffaf 100644
--- a/src/main/java/com/moon/server/service/data/ReadRasterService.java
+++ b/src/main/java/com/moon/server/service/data/ReadRasterService.java
@@ -15,6 +15,8 @@
 import org.springframework.stereotype.Service;
 
 import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 璇诲彇鏍呮牸鏈嶅姟
@@ -86,6 +88,8 @@
             mf.setCt(null == colorTable ? null : colorTable.toString());
             // 楂樼▼鍩哄噯
             mf.sethDatum(null);
+            // 璁剧疆鏈�鍊�
+            setMinAndMax(ds, mf);
 
             // 鍒嗚鲸鐜�
             double[] tr = new double[6];
@@ -175,7 +179,7 @@
      * 鑾峰彇Dataset鐨勬渶澶х偣
      */
     private Geometry getMaxPoint(Dataset ds) {
-        /**
+        /*
          * transform[0] 宸︿笂瑙抶鍧愭爣
          * transform[1] 涓滆タ鏂瑰悜鍒嗚鲸鐜�
          * transform[2] 鏃嬭浆瑙掑害, 0琛ㄧず鍥惧儚 "鍖楁柟鏈濅笂"
@@ -217,4 +221,26 @@
 
         return point;
     }
+
+    /**
+     * 璁剧疆鏈�鍊�
+     * GDALRasterBand::GetHistogram聽鈥嬧�嬬粺璁$洿鏂瑰浘
+     */
+    private void setMinAndMax(Dataset ds, MetaFileEntity mf) {
+        List<Double> minList = new ArrayList<>();
+        List<Double> maxList = new ArrayList<>();
+
+        for (int i = 1; i <= ds.getRasterCount(); i++) {
+            Double[] min = new Double[1];
+            Double[] max = new Double[1];
+            ds.GetRasterBand(i).GetMinimum(min);
+            ds.GetRasterBand(i).GetMaximum(max);
+
+            minList.add(min[0]);
+            maxList.add(max[0]);
+        }
+
+        mf.setMin(StringHelper.join(minList, ","));
+        mf.setMax(StringHelper.join(maxList, ","));
+    }
 }

--
Gitblit v1.9.3