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