pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/SimuApplication.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/helper/GdalHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/se/simu/service/WaterService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
pom.xml
@@ -117,7 +117,8 @@ <dependency> <groupId>org.gdal</groupId> <artifactId>gdal</artifactId> <version>3.9.0</version> <!--<version>3.9.0</version>--> <version>3.2.0</version> </dependency> </dependencies> src/main/java/com/se/simu/SimuApplication.java
@@ -3,6 +3,8 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; /** * 启动程序类 @@ -11,8 +13,13 @@ * @date 2024-07-16 */ @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}, scanBasePackages = {"com.se.simu"}) public class SimuApplication { public class SimuApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SimuApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder springApplicationBuilder) { return springApplicationBuilder.sources(SimuApplication.class); } } src/main/java/com/se/simu/helper/GdalHelper.java
@@ -1,7 +1,11 @@ package com.se.simu.helper; import lombok.extern.slf4j.Slf4j; import org.gdal.gdal.Band; import org.gdal.gdal.Dataset; import org.gdal.gdal.gdal; import org.gdal.gdalconst.gdalconst; import org.gdal.gdalconst.gdalconstConstants; import org.gdal.ogr.ogr; import java.io.File; @@ -15,6 +19,9 @@ @Slf4j @SuppressWarnings("ALL") public class GdalHelper { /** * 初始化 */ public static void init(String gdalPath) { // 支持中文路径 gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES"); @@ -25,10 +32,10 @@ // 配置环境变量 if (!StringHelper.isEmpty(gdalPath)) { gdal.SetConfigOption("GDAL_DATA", gdalPath + File.separator + "gdal-data"); gdal.SetConfigOption("PROJ_LIB", gdalPath + File.separator + "proj7" + File.separator + "share"); //System.setProperty("PROJ_LIB", gdalPath + File.separator + "proj7" + File.separator + "share") gdal.SetConfigOption("GDAL_DRIVER_PATH", gdalPath + File.separator + "gdalplugins"); gdal.SetConfigOption("GDAL_DATA", gdalPath + "/gdal-data"); gdal.SetConfigOption("PROJ_LIB", gdalPath + "/proj7/share"); //System.setProperty("PROJ_LIB", gdalPath + "/proj7/share") gdal.SetConfigOption("GDAL_DRIVER_PATH", gdalPath + "/gdalplugins"); String path = System.getenv("PATH"); if (!path.contains(gdalPath)) { @@ -40,4 +47,31 @@ gdal.AllRegister(); ogr.RegisterAll(); } /** * 创建金字塔 */ public static void createPyramid(String file) { try { File f = new File(file); if (!f.exists() || f.isDirectory()) { return; } Dataset ds = gdal.Open(file, gdalconst.GA_ReadOnly); if (null == ds) { return; } // 创建金字塔 Band band = ds.GetRasterBand(1); if (0 == band.GetOverviewCount()) { ds.BuildOverviews("nearest", new int[]{2, 4, 6, 8, 16}, null); } ds.delete(); } catch (Exception ex) { log.error(ex.getMessage(), ex); } } } src/main/java/com/se/simu/service/WaterService.java
@@ -1,6 +1,7 @@ package com.se.simu.service; import com.se.simu.domain.LayerVo; import com.se.simu.helper.GdalHelper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -28,6 +29,12 @@ String dataPath; public LayerVo getLayer(String serviceName) { String file = "D:/simu/test/DEM_M.tif"; GdalHelper.createPyramid(file); String file2 = "D:/simu/test/DOM_M.tif"; GdalHelper.createPyramid(file2); LayerVo layer = new LayerVo(); layer.setVer(ver); layer.setDuration(new LayerVo.Duration(1719812810225L, 1719812810225L));