1
13693261870
2024-10-17 d8d6c6327cc561ed9f56334c8a17cfef0e8ba710
1
已修改3个文件
58 ■■■■■ 文件已修改
src/main/java/com/se/simu/domain/dto/TerrainDto.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/domain/dto/WaterDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/service/ResultService.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/se/simu/domain/dto/TerrainDto.java
@@ -1,5 +1,6 @@
package com.se.simu.domain.dto;
import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.ArrayList;
@@ -14,14 +15,14 @@
public class TerrainDto {
    private List<int[]> size;
    @JsonIgnore
    @JSONField(serialize = false)
    private String epsg;
    @JsonIgnore
    private double minHeight;
    @JSONField(serialize = false)
    private Double minHeight;
    @JsonIgnore
    private double maxHeight;
    @JSONField(serialize = false)
    private Double maxHeight;
    public TerrainDto() {
    }
@@ -33,7 +34,7 @@
        }
    }
    public void setHeight(double minHeight, double maxHeight) {
    public void setHeight(Double minHeight, Double maxHeight) {
        this.minHeight = minHeight;
        this.maxHeight = maxHeight;
    }
src/main/java/com/se/simu/domain/dto/WaterDto.java
@@ -1,6 +1,6 @@
package com.se.simu.domain.dto;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.ArrayList;
import java.util.List;
@@ -12,7 +12,7 @@
 * @date   2024-09-30
 */
public class WaterDto {
    @JsonIgnore
    @JSONField(serialize = false)
    private List<String> files;
    private List<Long> data;
src/main/java/com/se/simu/service/ResultService.java
@@ -39,7 +39,7 @@
    @Resource
    PropertiesConfig config;
    public final static double MAX_X_OFFSET = 0.002;
    public final static double MAX_X_OFFSET = 0;
    public void process(DataPo data) throws Exception {
        String basePath = config.getInPath() + File.separator + data.getInPath() + File.separator;
@@ -76,7 +76,7 @@
        Dataset ds = null;
        try {
            ds = gdal.Open(dto.getTerrainFile(), gdalconst.GA_ReadOnly);
            if (null == ds || 0 == ds.getRasterCount() || null == ds.GetSpatialRef()) return;
            if (null == ds || 0 == ds.getRasterCount()) return;
            setTerrainInfo(ds, layer);
            setWaterInfo(dto, layer);
@@ -124,20 +124,25 @@
        }
    }
    /**
     * 重采样
     */
    private static void Resample(Dataset ds, String dest, int width, int height, LayerDto layer) {
        Vector<String> vector = new Vector<>();
        vector.add("-t_srs");
        vector.add("EPSG:" + 4326);
        //vector.add("-s_srs");
        //vector.add("EPSG:" + 4548);
        //vector.add("-t_srs");
        //vector.add("EPSG:" + 4326);
        vector.add("-ts");
        vector.add("" + width);
        vector.add("" + height);
        vector.add("-te");
        vector.add("" + layer.getExtension().getMinx());
        vector.add("" + layer.getExtension().getMiny());
        vector.add("" + layer.getExtension().getMaxx());
        vector.add("" + layer.getExtension().getMaxy());
        vector.add("-te_srs");
        vector.add("EPSG:" + 4326);
        //vector.add("-te");
        //vector.add("" + layer.getExtension().getMinx());
        //vector.add("" + layer.getExtension().getMiny());
        //vector.add("" + layer.getExtension().getMaxx());
        //vector.add("" + layer.getExtension().getMaxy());
        //vector.add("-te_srs");
        //vector.add("EPSG:" + 4326);
        vector.add("-r");
        vector.add("bilinear");
        vector.add("-of");
@@ -317,7 +322,7 @@
            Dataset ds = null;
            try {
                ds = gdal.Open(file, gdalconst.GA_ReadOnly);
                if (null == ds || 0 == ds.getRasterCount() || null == ds.GetSpatialRef()) return;
                if (null == ds || 0 == ds.getRasterCount()) return;
                double[] mm = new double[2];
                ds.GetRasterBand(1).ComputeRasterMinMax(mm, 0);
@@ -335,7 +340,7 @@
            Dataset ds = null;
            try {
                ds = gdal.Open(files.get(i), gdalconst.GA_ReadOnly);
                if (null == ds || 0 == ds.getRasterCount() || null == ds.GetSpatialRef()) return;
                if (null == ds || 0 == ds.getRasterCount()) return;
                createWaterPng(dto, ds, layer, layer.getWaters().getData().get(i));
            } finally {
@@ -384,8 +389,8 @@
                    double X = transform[0] + x * transform[1] + y * transform[2];
                    double Y = transform[3] + x * transform[4] + y * transform[5];
                    BuildingDto building = intersects(dto, X, Y);
                    if (null != building) continue;
                    //BuildingDto building = intersects(dto, X, Y);
                    //if (null != building) continue;
                    int r = 0, g, b;
                    if (buffer[offset] - layer.getExtension().getMaxHeight() > 0) {
@@ -426,7 +431,7 @@
            Dataset ds = null;
            try {
                ds = gdal.Open(files.get(i), gdalconst.GA_ReadOnly);
                if (null == ds || 0 == ds.getRasterCount() || null == ds.GetSpatialRef()) return;
                if (null == ds || 0 == ds.getRasterCount()) return;
                createFlowPng(dto, ds, layer, layer.getWaters().getData().get(i));
            } finally {
@@ -508,8 +513,10 @@
     */
    private void copeLayerJson(ResultDto dto, LayerDto layer) throws IOException {
        layer.getWaters().setFiles(null);
        //String json = JSONUtil.toJsonPrettyStr(layer);
        layer.getTerrain().setEpsg(null);
        String json = JSON.toJSONString(layer);
        //String json = JSONUtil.toJsonPrettyStr(layer);
        String filePath = dto.getOutPath() + File.separator + "layer.json";
        FileWriter fw = new FileWriter(filePath);