From f984496e9bb3612ce38040a5dd0be548b181e971 Mon Sep 17 00:00:00 2001
From: dcb <xgybdcb@163.com>
Date: 星期四, 22 五月 2025 16:13:54 +0800
Subject: [PATCH] 修复时间轴问题

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

diff --git a/src/main/java/com/se/nsl/service/TestService.java b/src/main/java/com/se/nsl/service/TestService.java
index 401352b..fda8f1e 100644
--- a/src/main/java/com/se/nsl/service/TestService.java
+++ b/src/main/java/com/se/nsl/service/TestService.java
@@ -22,6 +22,10 @@
 import java.io.File;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.List;
 
@@ -197,6 +201,21 @@
     }
 
     public void setWaterData(LayerDto layer, List<String> files) {
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+        for (String file : files) {
+            String fileName = ComHelper.getNameWithExt(file);
+            // 瑙f瀽涓� LocalDateTime锛堥粯璁ゅ熀浜庣郴缁熸椂鍖猴紝鍙兘闇�鎸囧畾鏃跺尯锛�
+            LocalDateTime dateTime = LocalDateTime.parse(fileName, formatter);
+            // 杞崲涓� UTC 鏃堕棿鎴筹紙鎺ㄨ崘锛岄伩鍏嶆椂鍖烘涔夛級
+            Instant utcInstant = dateTime.atZone(ZoneId.of("UTC")).toInstant();
+            long timestamp = utcInstant.toEpochMilli();
+            layer.getWaters().getData().add(timestamp);
+        }
+        layer.getDuration().setStart(layer.getWaters().getData().get(0));
+        layer.getDuration().setEnd(layer.getWaters().getData().get(layer.getWaters().getData().size() - 1));
+    }
+
+    /*public void setWaterData(LayerDto layer, List<String> files) {
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(new Date());
         calendar.set(Calendar.MILLISECOND, 0);
@@ -221,7 +240,7 @@
         }
         layer.getDuration().setStart(layer.getWaters().getData().get(0));
         layer.getDuration().setEnd(layer.getWaters().getData().get(layer.getWaters().getData().size() - 1));
-    }
+    }*/
 
     public void setWaterHeight(LayerDto layer, List<String> files) {
         int c = files.size(), step = files.size() / 10;
@@ -244,29 +263,6 @@
         layer.getExtension().setMaxHeight(ComHelper.getMaxVal(layer.getExtension().getMaxHeight(), 1000000));
         layer.getExtension().setMinHeight(ComHelper.getMaxVal(layer.getExtension().getMinHeight(), 1000000));
         layer.getExtension().setDiffer();
-    }
-
-    private double[] readTifBbox(Dataset ds) {
-        // 1. 鑾峰彇鍥惧儚灏哄
-        int width = ds.getRasterXSize();
-        int height = ds.getRasterYSize();
-
-        // 2. 鑾峰彇GeoTransform鍙傛暟
-        double[] geoTransform = new double[6];
-        ds.GetGeoTransform(geoTransform);
-
-        // 3. 瑙f瀽GeoTransform鍙傛暟锛堢粡绾害鍧愭爣锛�
-        double originLon = geoTransform[0];  // 宸︿笂瑙掔粡搴�
-        double originLat = geoTransform[3];  // 宸︿笂瑙掔含搴�
-        double pixelWidth = geoTransform[1];  // 缁忓害鏂瑰悜鍒嗚鲸鐜囷紙搴�/鍍忕礌锛�
-        double pixelHeight = geoTransform[5]; // 绾害鏂瑰悜鍒嗚鲸鐜囷紙搴�/鍍忕礌锛岄�氬父涓鸿礋锛�
-
-        // 4. 璁$畻鍥涜嚦鑼冨洿锛堢粡绾害锛�
-        double minLon = Math.min(originLon, originLon + width * pixelWidth);
-        double maxLon = Math.max(originLon, originLon + width * pixelWidth);
-        double minLat = Math.min(originLat, originLat + height * pixelHeight);
-        double maxLat = Math.max(originLat, originLat + height * pixelHeight);
-        return new double[] {minLon, maxLon, minLat, maxLat};
     }
 
     public void processWaters(ResultDto dto, List<String> files, LayerDto layer) {
@@ -434,7 +430,7 @@
         for (int[] sizes : layer.getTerrain().getSize()) {
             String name = ComHelper.getNameWithExt(ds.GetDescription()) + "_" + sizes[0] + "_" + sizes[1];
             String tif = dto.getTemp() + File.separator + name + ".tif";
-            ComHelper.Resample(ds, tif, sizes[0], sizes[1], layer);
+//            ComHelper.Resample(ds, tif, sizes[0], sizes[1], layer);
             if (!new File(tif).exists()) continue;
 
             String png = flowPath + File.separator + sizes[0] + "_" + sizes[1] + ".png";

--
Gitblit v1.9.3