管道基础大数据平台系统开发-【后端】-Server
13693261870
2022-10-21 2383be4112283bd3fe0042239718e71369abbc1a
上传shp
已添加1个文件
已修改5个文件
126 ■■■■■ 文件已修改
src/main/java/com/lf/server/config/InitConfig.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/controller/show/ComprehensiveController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/entity/ctrl/ShpRecord.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/FileHelper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdalHelper.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/service/show/ComprehensiveService.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/config/InitConfig.java
@@ -5,6 +5,8 @@
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lf.server.entity.bd.DlgAgnpEntity;
import com.lf.server.entity.ctrl.ShpRecord;
import com.lf.server.helper.GdalHelper;
import com.lf.server.helper.PathHelper;
import com.lf.server.helper.Zip4jHelper;
import com.lf.server.helper.ZipHelper;
@@ -47,6 +49,7 @@
            //GdalHelper.readTif("E:\\data\\7.Insar\\insartest.tif")
            //GdalHelper.readShp("E:\\data\\13.cppe\\shps\\addr.shp");
            //GdalHelper.readGdb("E:\\Test\\addr.gdb");
            //ShpRecord sr = GdalHelper.readShpFirstRecord("D:\\LF\\data\\shp\\extent.shp");
            //com.lf.server.helper.RsaHelper.generate();
            //testMybatisPlus();
src/main/java/com/lf/server/controller/show/ComprehensiveController.java
@@ -5,6 +5,7 @@
import com.lf.server.controller.all.BaseController;
import com.lf.server.entity.all.ResponseMsg;
import com.lf.server.entity.bd.DlgAgnpEntity;
import com.lf.server.entity.ctrl.ShpRecord;
import com.lf.server.entity.data.MetaEntity;
import com.lf.server.entity.data.MetaFileEntity;
import com.lf.server.entity.sys.UserEntity;
@@ -81,7 +82,7 @@
    @ApiOperation(value = "上传Shp文件获取第一条记录的WKT")
    @ResponseBody
    @PostMapping(value = "/uploadShp")
    public ResponseMsg<String> uploadShp(HttpServletRequest req, HttpServletResponse res) {
    public ResponseMsg<ShpRecord> uploadShp(HttpServletRequest req, HttpServletResponse res) {
        try {
            UserEntity ue = tokenService.getCurrentUser(req);
            if (ue == null) {
@@ -94,7 +95,8 @@
                return fail("没有找到上传数据", null);
            }
            return success("");
            ShpRecord sr = comprehensiveService.readShpFirstRecord(list);
            return success(sr);
        } catch (Exception ex) {
            return fail(ex.getMessage(), null);
        }
src/main/java/com/lf/server/entity/ctrl/ShpRecord.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
package com.lf.server.entity.ctrl;
import java.io.Serializable;
/**
 * Shp记录
 * @author WWW
 */
public class ShpRecord implements Serializable {
    private static final long serialVersionUID = -1366388818651675941L;
    private String wkt;
    private String csid;
    public ShpRecord() {
    }
    public ShpRecord(String wkt, String csid) {
        this.wkt = wkt;
        this.csid = csid;
    }
    public String getWkt() {
        return wkt;
    }
    public void setWkt(String wkt) {
        this.wkt = wkt;
    }
    public String getCsid() {
        return csid;
    }
    public void setCsid(String csid) {
        this.csid = csid;
    }
}
src/main/java/com/lf/server/helper/FileHelper.java
@@ -1,11 +1,16 @@
package com.lf.server.helper;
import com.lf.server.entity.data.MetaFileEntity;
import com.lf.server.service.data.UploaderService;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
/**
 * æ–‡ä»¶å¸®åŠ©ç±»
@@ -17,6 +22,8 @@
    public static final double D1024 = 1024.0;
    public static final double D1050 = 1050.0;
    private final static Log log = LogFactory.getLog(FileHelper.class);
    /**
     * èŽ·å–æ–‡ä»¶æ‰©å±•å
@@ -186,4 +193,20 @@
        return md5;
    }
    /**
     * åˆ é™¤æ–‡ä»¶
     */
    public static void deleteFiles(List<MetaFileEntity> list) {
        try {
            for (MetaFileEntity mf : list) {
                File f = new File(mf.getPath());
                if (f.exists()) {
                    f.delete();
                }
            }
        } catch (Exception ex) {
            log.error(ex.getStackTrace());
        }
    }
}
src/main/java/com/lf/server/helper/GdalHelper.java
@@ -1,5 +1,6 @@
package com.lf.server.helper;
import com.lf.server.entity.ctrl.ShpRecord;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.gdal.gdal.Band;
@@ -44,6 +45,35 @@
    }
    /**
     * èŽ·å–Shp第一条记录的WKT
     */
    public static ShpRecord readShpFirstRecord(String filePath) {
        try {
            org.gdal.ogr.Driver driver = ogr.GetDriverByName("ESRI shapefile");
            if (driver == null) {
                return null;
            }
            DataSource dataSource = driver.Open(filePath);
            Layer layer = dataSource.GetLayer(0);
            if (layer.GetFeatureCount() < 1) {
                return null;
            }
            SpatialReference spatialReference = layer.GetSpatialRef();
            String csid = spatialReference.GetAttrValue("AUTHORITY", 1);
            Feature feature = layer.GetFeature(0);
            String wkt = feature.GetGeometryRef().ExportToWkt();
            return new ShpRecord(wkt, csid);
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        }
    }
    /**
     * è¯»å–tif文件
     *
     * @param fileName
src/main/java/com/lf/server/service/show/ComprehensiveService.java
@@ -4,10 +4,16 @@
import com.baomidou.mybatisplus.core.metadata.OrderItem;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lf.server.entity.bd.DlgAgnpEntity;
import com.lf.server.entity.ctrl.ShpRecord;
import com.lf.server.entity.data.MetaFileEntity;
import com.lf.server.helper.FileHelper;
import com.lf.server.helper.GdalHelper;
import com.lf.server.helper.StringHelper;
import com.lf.server.mapper.bd.DlgAgnpMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * ç»¼åˆå±•示
@@ -34,4 +40,22 @@
    public String selectWktById(Integer id) {
        return dlgAgnpMapper.selectWktById(id);
    }
    public ShpRecord readShpFirstRecord(List<MetaFileEntity> list) {
        String fileName = null;
        for (MetaFileEntity mf : list) {
            if (mf.getName().toLowerCase().indexOf(".shp") > -1) {
                fileName = mf.getPath();
                break;
            }
        }
        if (StringHelper.isEmpty(fileName)) {
            return null;
        }
        ShpRecord sr = GdalHelper.readShpFirstRecord(fileName);
        FileHelper.deleteFiles(list);
        return sr;
    }
}