src/main/java/com/lf/server/config/InitConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/controller/show/ComprehensiveController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/entity/ctrl/ShpRecord.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/FileHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/GdalHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/show/ComprehensiveService.java | ●●●●● 补丁 | 查看 | 原始文档 | 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; } }