管道基础大数据平台系统开发-【后端】-Server
13693261870
2023-11-29 a3d8b2a5a449f2f633973786573b5306f29a517e
添加“使用GDAL获取EPSG编码”
已修改6个文件
84 ■■■■ 文件已修改
src/main/java/com/lf/server/controller/data/PublishController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/StringHelper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/WebHelper.java 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/data/RasterService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
说明.txt 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/data/PublishController.java
@@ -299,7 +299,8 @@
                    continue;
                }
                Integer epsg = rasterService.getRaterEpsg(filePath);
                // Integer epsg = rasterService.getRaterEpsg(filePath)
                Integer epsg = rasterService.getEpsgByGdal(filePath);
                if (null == epsg || epsg < 1) {
                    me.setBak("坐标系ID无效");
                    errList.add(me);
src/main/java/com/lf/server/helper/StringHelper.java
@@ -203,7 +203,7 @@
     * èŽ·å–åˆ†é’Ÿå·®æ•°
     */
    public static long getMinuteDifference(Timestamp ts) {
        return (ts.getTime() - new Date().getTime()) / 1000 / 60;
        return (ts.getTime() - System.currentTimeMillis()) / 1000 / 60;
    }
    /**
src/main/java/com/lf/server/helper/WebHelper.java
@@ -16,9 +16,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.*;
import java.net.URLEncoder;
import java.sql.Timestamp;
import java.util.*;
@@ -368,6 +366,30 @@
    }
    /**
     * æ‰§è¡Œå‘½ä»¤
     *
     * @param cmd å‘½ä»¤
     */
    public static String exec2(String cmd) {
        try {
            StringBuilder sb = new StringBuilder();
            Process process = Runtime.getRuntime().exec(cmd);
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line).append("\n");
            }
            reader.close();
            return sb.toString();
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;
        }
    }
    /**
     * èŽ·å–è¯·æ±‚çš„å‚æ•°å€¼
     *
     * @param req è¯·æ±‚
src/main/java/com/lf/server/service/data/RasterService.java
@@ -2,6 +2,7 @@
import com.lf.server.entity.all.StaticData;
import com.lf.server.helper.StringHelper;
import com.lf.server.helper.WebHelper;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gdal.gdal.Dataset;
@@ -11,6 +12,7 @@
import org.gdal.ogr.ogr;
import org.gdal.osr.SpatialReference;
import org.osgeo.proj4j.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
@@ -25,6 +27,9 @@
    private SpatialReference sr4326;
    private SpatialReference sr4490;
    @Value("${sys.gdal_path}")
    private String gdalPath;
    private final static Log log = LogFactory.getLog(RasterService.class);
@@ -80,6 +85,38 @@
    }
    /**
     * ä½¿ç”¨GDAL获取EPSG编码
     */
    public Integer getEpsgByGdal(String file) {
        try {
            File f = new File(file);
            if (!f.exists() || f.isDirectory()) {
                return null;
            }
            String cmd = String.format("%s\\gdalsrsinfo.exe \"%s\" -o epsg", gdalPath, file);
            String rs = WebHelper.exec2(cmd);
            if (StringHelper.isEmpty(rs)) {
                return null;
            }
            String[] strs = rs.split("\n");
            for (String str : strs) {
                if (str.contains("EPSG:")) {
                    String epsg = str.replace("EPSG:", "");
                    return Integer.parseInt(epsg);
                }
            }
            return 0;
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;
        }
    }
    /**
     * åæ ‡è½¬æ¢
     */
    public Object csTransform(double x, double y, int epsg) {
src/main/resources/application.yml
@@ -46,11 +46,11 @@
    name: prod
    # JDBC åŸºæœ¬é…ç½® &currentSchema=public
    #url: jdbc:postgresql://106.120.22.35:5433/langfang?useAffectedRows=true
    #url: jdbc:postgresql://192.168.20.205:5433/langfang?useAffectedRows=true
    url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
    url: jdbc:postgresql://192.168.20.205:5433/langfang?useAffectedRows=true
    #url: jdbc:postgresql://127.0.0.1:5433/langfang?useAffectedRows=true
    username: postgres
    #password: Postgres!_14_Lf
    password: postgres
    password: Postgres!_14_Lf
    #password: postgres
    driver-class-name: org.postgresql.Driver
    platform: POSTGRESQL
    type: com.alibaba.druid.pool.DruidDataSource
˵Ã÷.txt
@@ -1,3 +1,9 @@
------------------------------------------------------------------------------- ä¸“题图
case "A0": return 1200;
case "A1": return 850;
case "A2": return 600;
case "A3": return 424;
case "A4": return 300;
------------------------------------------------------------------------------- ä¼˜åŒ–网络
gpedit.msc
计算机\管理模板\网络\Qos数据包计划程序\限制可保留带宽 -> å¯ç”¨ï¼Œ0%