From 3417cf014a65765e02696c1d121ce58b2b4a8aed Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 08 四月 2025 15:55:36 +0800
Subject: [PATCH] 修改pom.xml

---
 src/main/java/com/se/simu/config/InitConfig.java |  150 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 143 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/se/simu/config/InitConfig.java b/src/main/java/com/se/simu/config/InitConfig.java
index 491bb3e..3299969 100644
--- a/src/main/java/com/se/simu/config/InitConfig.java
+++ b/src/main/java/com/se/simu/config/InitConfig.java
@@ -1,8 +1,16 @@
 package com.se.simu.config;
 
+import com.se.simu.helper.CaffeineHelper;
 import com.se.simu.helper.GdalHelper;
 import com.se.simu.helper.WebHelper;
 import lombok.extern.slf4j.Slf4j;
+import org.gdal.gdal.Band;
+import org.gdal.gdal.Dataset;
+import org.gdal.gdal.Driver;
+import org.gdal.gdal.gdal;
+import org.gdal.gdalconst.gdalconstConstants;
+import org.gdal.ogr.*;
+import org.gdal.osr.SpatialReference;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.ApplicationArguments;
 import org.springframework.boot.ApplicationRunner;
@@ -10,21 +18,21 @@
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 
-/**
- * 鍒濆鍖栭厤缃被
- *
- * @author WWW
- * @date 2024-07-16
- */
 @Slf4j
 @Component
+@SuppressWarnings("ALL")
 public class InitConfig implements ApplicationRunner {
     @Resource
     Environment env;
 
     @Value("${server.port}")
     String serverPort;
+
+    @Value("${config.cacheTime}")
+    Integer cacheTime;
 
     @Value("${server.servlet.context-path}")
     String contextPath;
@@ -34,15 +42,143 @@
         // noinspection AlibabaRemoveCommentedCode
         try {
             log.info("***************** 鍒濆鍖� GDAL *****************" + "\n");
-            GdalHelper.init(env.getProperty("sys.path.gdal"));
+            GdalHelper.init(env.getProperty("config.gdalPath"));
+            CaffeineHelper.init(cacheTime);
 
             String path = null != contextPath && contextPath.length() > 1 ? contextPath : "";
             log.info("API鏂囨。:http://localhost:" + serverPort + path + "/doc.html");
             log.info("API鏂囨。:http://{}:{}{}/doc.html", WebHelper.getHostIp(), serverPort, path);
 
             log.info("***************** 绯荤粺鍚姩瀹屾瘯 *****************" + "\n");
+
+            //log.info("***************** 璇诲彇tif鏂囦欢 *****************" + "\n");
+            // 璇诲彇tif鏂囦欢
+            //readTif("D:\\soft\\env\\tif\\srtm_12_03.tif");
+            //log.info("***************** 璇诲彇tif鏂囦欢瀹屾瘯 *****************" + "\n");
+
+            //log.info("***************** 璇诲彇shp鏂囦欢 *****************" + "\n");
+            // 璇诲彇shp鏂囦欢
+            //readShp("D:\\soft\\env\\闆ㄩ噺绔欑偣鏁版嵁\\闆ㄩ噺绔欑偣_84\\闆ㄩ噺绔欑偣_84.shp");
+            //log.info("***************** 璇诲彇shp鏂囦欢瀹屾瘯 *****************" + "\n");
+
+
         } catch (Exception ex) {
             log.error(ex.getMessage(), ex);
         }
     }
+
+
+
+    /**
+     * 璇诲彇tif鏂囦欢
+     *
+     * @param fileName
+     */
+    public static void readTif(String fileName) {
+        // 璇诲彇褰卞儚鏁版嵁
+        Dataset dataset = gdal.Open(fileName, gdalconstConstants.GA_ReadOnly);
+        if (dataset == null) {
+            System.out.println("read fail!");
+            return;
+        }
+
+        // providing various methods for a format specific driver.
+        Driver driver = dataset.GetDriver();
+        System.out.println("driver name: " + driver.getLongName());
+
+        // 璇诲彇褰卞儚淇℃伅
+        int xSize = dataset.getRasterXSize();
+        int ySzie = dataset.getRasterYSize();
+        int rasterCount = dataset.getRasterCount();
+        System.out.println("dataset xSize: " + xSize + ", ySzie = " + ySzie + ", rasterCount = " + rasterCount);
+
+        Band band = dataset.GetRasterBand(1);
+        // the data type of the band.
+        int type = band.GetRasterDataType();
+        System.out.println("data type = " + type + ", " + (type == gdalconstConstants.GDT_Byte));
+
+        // Frees the native resource associated to a Dataset object and close the file.
+        dataset.delete();
+
+        gdal.GDALDestroyDriverManager();
+    }
+
+    /**
+     * 璇诲彇 Shapefile 鏂囦欢骞舵墦鍗板睘鎬у拰鍑犱綍鏁版嵁
+     *
+     * @param shapefilePath SHP 鏂囦欢璺緞
+     */
+
+    public void readShp(String strVectorFile) {
+
+        // 娉ㄥ唽鎵�鏈夌殑椹卞姩
+        ogr.RegisterAll();
+        // 涓轰簡鏀寔涓枃璺緞锛岃娣诲姞涓嬮潰杩欏彞浠g爜
+        gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");
+        // 涓轰簡浣垮睘鎬ц〃瀛楁鏀寔涓枃锛岃娣诲姞涓嬮潰杩欏彞
+        gdal.SetConfigOption("SHAPE_ENCODING", "CP936");
+        // 璇诲彇鏁版嵁锛岃繖閲屼互ESRI鐨剆hp鏂囦欢涓轰緥
+        String strDriverName = "ESRI Shapefile";
+        // 鍒涘缓涓�涓枃浠讹紝鏍规嵁strDriverName鎵╁睍鍚嶈嚜鍔ㄥ垽鏂┍鍔ㄧ被鍨�
+
+        org.gdal.ogr.Driver oDriver = ogr.GetDriverByName(strDriverName);
+
+        if (oDriver == null) {
+            System.out.println(strDriverName + " 椹卞姩涓嶅彲鐢紒\n");
+            return;
+        }
+        DataSource dataSource = oDriver.Open(strVectorFile);
+        //Layer layer = dataSource.GetLayer("test");
+        Layer layer = dataSource.GetLayer(0);
+
+        for (int i = 0; i < dataSource.GetLayerCount(); i++) {
+            Layer layerIdx = dataSource.GetLayer(i);
+            System.out.println("鍥惧眰鍚嶇О锛�<==>" + layerIdx.GetName());
+        }
+
+        String layerName = layer.GetName();
+        System.out.println("鍥惧眰鍚嶇О锛�" + layerName);
+        SpatialReference spatialReference = layer.GetSpatialRef();
+        //System.out.println(spatialReference);
+        System.out.println("绌洪棿鍙傝�冨潗鏍囩郴锛�" + spatialReference.GetAttrValue("AUTHORITY", 0)
+                + spatialReference.GetAttrValue("AUTHORITY", 1));
+
+        double[] layerExtent = layer.GetExtent();
+
+        System.out.println("鍥惧眰鑼冨洿锛歮inx:" + layerExtent[0] + ",maxx:" + layerExtent[1] + ",miny:" + layerExtent[2] + ",maxy:" + layerExtent[3]);
+
+
+        FeatureDefn featureDefn = layer.GetLayerDefn();
+
+        int fieldCount = featureDefn.GetFieldCount();
+
+        Map<String, String> fieldMap = new HashMap<String, String>();
+        for (int i = 0; i < fieldCount; i++) {
+            FieldDefn fieldDefn = featureDefn.GetFieldDefn(i);
+            // 寰楀埌灞炴�у瓧娈电被鍨�
+            int fieldType = fieldDefn.GetFieldType();
+            String fieldTypeName = fieldDefn.GetFieldTypeName(fieldType);
+            // 寰楀埌灞炴�у瓧娈靛悕绉�
+            String fieldName = fieldDefn.GetName();
+            fieldMap.put(fieldTypeName, fieldName);
+        }
+        System.out.println();
+        System.out.println("fileMap:");
+        System.out.println(fieldMap);
+
+        System.out.println(layer.GetFeature(1).GetGeometryRef().ExportToJson());
+        System.out.println(layer.GetFeature(2).GetGeometryRef().ExportToJson());
+        System.out.println(layer.GetFeature(3).GetGeometryRef().ExportToJson());
+
+        for (int i = 0; i < 12; i++) {
+            Feature feature = layer.GetFeature(i);
+            Object[] arr = fieldMap.values().toArray();
+            for (int k = 0; k < arr.length; k++) {
+                String fvalue = feature.GetFieldAsString(arr[k].toString());
+                System.out.println(" 灞炴�у悕绉�:" + arr[k].toString() + ",灞炴�у��:" + fvalue);
+            }
+        }
+    }
+
+
 }

--
Gitblit v1.9.3