From e9c5d9484336770c3fb8076a82dbbd85c363ddd2 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期二, 08 十月 2024 17:11:42 +0800 Subject: [PATCH] 11 --- src/main/java/com/se/simu/service/ResultService.java | 62 +++++++++++++----------------- 1 files changed, 27 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/se/simu/service/ResultService.java b/src/main/java/com/se/simu/service/ResultService.java index b25c680..6d51d76 100644 --- a/src/main/java/com/se/simu/service/ResultService.java +++ b/src/main/java/com/se/simu/service/ResultService.java @@ -55,7 +55,7 @@ public void process(ResultDto dto) throws Exception { try { - LayerDto layer = new LayerDto(config.getVer()); + LayerDto layer = new LayerDto(config.getVer(), 4528, config.getSizes()); copeTerrain(dto, layer); copeBuilding(dto, layer); @@ -127,14 +127,11 @@ private static void Resample(Dataset ds, String dest, int width, int height, LayerDto layer) { Vector<String> vector = new Vector<>(); - //vector.add("-s_srs"); - //vector.add("EPSG:" + 4326); vector.add("-t_srs"); vector.add("EPSG:" + 4326); - vector.add("-r"); - vector.add("bilinear"); - vector.add("-of"); - vector.add("GTiff"); + vector.add("-ts"); + vector.add("" + width); + vector.add("" + height); vector.add("-te"); vector.add("" + layer.getExtension().getMinx()); vector.add("" + layer.getExtension().getMiny()); @@ -142,6 +139,10 @@ vector.add("" + layer.getExtension().getMaxy()); vector.add("-te_srs"); vector.add("EPSG:" + 4326); + vector.add("-r"); + vector.add("bilinear"); + vector.add("-of"); + vector.add("GTiff"); WarpOptions warpOptions = new WarpOptions(vector); Dataset destDs = gdal.Warp(dest, new Dataset[]{ds}, warpOptions); @@ -159,12 +160,7 @@ //band.ReadRaster(0, 0, width, height, buffer, width, height, 0, 0); band.ReadRaster(0, 0, width, height, buffer); - BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - Graphics2D graphic = image.createGraphics(); - Color transparent = new Color(0, 0, 0, 0); - graphic.setColor(transparent); - graphic.clearRect(0, 0, width, height); - + BufferedImage image = createImage(width, height); double differ = layer.getExtension().getMaxHeight() - layer.getExtension().getMinHeight(), minHeight = layer.getExtension().getMinHeight(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { @@ -181,15 +177,25 @@ } Color color = new Color(r, g, b, 127); - //image.setRGB(x, y, color.getRGB()); - graphic.drawImage(image, x, y, 1, 1, color, null); + //graphic.drawImage(image, x, y, 1, 1, color, null); + image.setRGB(x, y, color.getRGB()); } } - graphic.dispose(); savePng(image, png); } finally { if (null != ds) ds.delete(); } + } + + private static BufferedImage createImage(int width, int height) { + BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + Graphics2D graphic = image.createGraphics(); + Color transparent = new Color(0, 0, 0, 0); + graphic.setColor(transparent); + graphic.clearRect(0, 0, width, height); + graphic.dispose(); + + return image; } private static void savePng(BufferedImage image, String png) { @@ -298,7 +304,7 @@ } private static void setWaterHeight(LayerDto layer, List<String> files) { - files.parallelStream().forEach(file->{ + files.parallelStream().forEach(file -> { Dataset ds = null; try { ds = gdal.Open(file, gdalconst.GA_ReadOnly); @@ -361,12 +367,7 @@ band.ReadRaster(0, 0, width, height, buffer); float[] building = dto.getBuildings().get(width + "_" + height); - BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - Graphics2D graphic = image.createGraphics(); - Color transparent = new Color(0, 0, 0, 0); - graphic.setColor(transparent); - graphic.clearRect(0, 0, width, height); - + BufferedImage image = createImage(width, height); double differ = layer.getExtension().getMaxHeight() - layer.getExtension().getMinHeight(), minHeight = layer.getExtension().getMinHeight(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { @@ -384,11 +385,9 @@ } Color color = new Color(r, g, b, 127); - //image.setRGB(x, y, color.getRGB()); - graphic.drawImage(image, x, y, 1, 1, color, null); + image.setRGB(x, y, color.getRGB()); } } - graphic.dispose(); savePng(image, png); } finally { if (null != ds) ds.delete(); @@ -461,12 +460,7 @@ } private static void createFlowPng(float[] vxBuffer, float[] vyBuffer, String png, int width, int height) { - BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); - Graphics2D graphic = image.createGraphics(); - Color transparent = new Color(0, 0, 0, 0); - graphic.setColor(transparent); - graphic.clearRect(0, 0, width, height); - + BufferedImage image = createImage(width, height); // 鐢� R閫氶亾琛ㄧず锛屾祦鍚戜负褰掍竴鍖栫殑浜岀淮鍚戦噺锛坸,y锛夛紝G閫氶亾琛ㄧず涓� x *255 , B閫氶亾琛ㄧず涓� y * 255 for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { @@ -484,11 +478,9 @@ int b = (int) ((fy / dr * 0.5 + 0.5) * 255); Color color = new Color(getSafeValue(r), getSafeValue(g), getSafeValue(b), 127); - //image.setRGB(x, y, color.getRGB()); - graphic.drawImage(image, x, y, 1, 1, color, null); + image.setRGB(x, y, color.getRGB()); } } - graphic.dispose(); savePng(image, png); } -- Gitblit v1.9.3