From 3afaf1a21f47b6f9b46dd8e089e15e1e325c810a Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 10 Jul 2024 15:44:51 +0800
Subject: [PATCH] 更新喇叭,图斑解析更新
---
src/main/java/com/dji/sample/patches/utils/ShapeFileUtil.java | 47 +++++++++++++++++++++++++++++------------------
1 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/src/main/java/com/dji/sample/patches/utils/ShapeFileUtil.java b/src/main/java/com/dji/sample/patches/utils/ShapeFileUtil.java
index 72df6b3..facbe82 100644
--- a/src/main/java/com/dji/sample/patches/utils/ShapeFileUtil.java
+++ b/src/main/java/com/dji/sample/patches/utils/ShapeFileUtil.java
@@ -2,6 +2,7 @@
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSONObject;
+import com.dji.sample.patches.model.dto.ShpDTO;
import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFinder;
import org.geotools.data.FeatureSource;
@@ -11,21 +12,14 @@
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.filter.Filter;
-
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.*;
public class ShapeFileUtil {
- /*
- * @param zipFile: 压缩包文件地址
- * @return FeatureCollection
- * @author pangshicheng
- * @description 解析shp压缩包,并返回解析出的 FeatureCollection
- * @date 2023/7/18 16:02
- */
+ //将文件解压
public static FeatureCollection getFeatureCollectionByShpFile(File zipFile) throws IOException {
try {
String tempDir = FileUtil.getTmpDirPath();
@@ -54,27 +48,30 @@
Filter filter = Filter.INCLUDE;
FeatureCollection<SimpleFeatureType, SimpleFeature> collection = source.getFeatures(filter);
return collection;
- }catch (Exception e){
+ } catch (Exception e) {
throw e;
}
}
+
/**
* @param zipFile:
* @return JSONObject
- * @author pangshicheng
* @description 通过shp压缩文件,将其转换为GeoJson格式
- * @date 2023/7/18 16:04
*/
- public static JSONObject shpToGeoJson(File zipFile) throws IOException {
+ //将解压后的文件转换成GeoJson格式
+ public static List<ShpDTO> shpToGeoJson(File zipFile) throws IOException {
+ ShpDTO shpDTO=new ShpDTO();
+ List<ShpDTO> dtoList= new ArrayList<>();
FeatureJSON fjson = new FeatureJSON();
- JSONObject geoJsonObject=new JSONObject();
- geoJsonObject.put("type","FeatureCollection");
+ JSONObject geoJsonObject = new JSONObject();
+ geoJsonObject.put("type", "FeatureCollection");
+ List<String> strings = new ArrayList<>();
try {
// 获取FeatureCollection
FeatureCollection collection = getFeatureCollectionByShpFile(zipFile);
FeatureIterator iterator = collection.features();
- List<JSONObject> array = new ArrayList<JSONObject>();
+ List<JSONObject> array = new ArrayList<JSONObject>();
//遍历feature转为json对象
while (iterator.hasNext()) {
SimpleFeature feature = (SimpleFeature) iterator.next();
@@ -84,17 +81,31 @@
byte[] b = temp.getBytes("iso8859-1");
temp = new String(b, "gbk");
JSONObject json = JSONObject.parseObject(temp);
+ shpDTO.setDKFW(json.getJSONObject("geometry").get("coordinates").toString());
+ shpDTO.setGEO(json.getJSONObject("geometry").get("type").toString());
+ shpDTO.setXZQDM(json.getJSONObject("properties").get("XZQDM").toString());
+ shpDTO.setXZB( json.getJSONObject("properties").getDouble("XZB"));
+ shpDTO.setYZB( json.getJSONObject("properties").getDouble("YZB"));
+ shpDTO.setDKBH(json.getJSONObject("properties").get("JCBH").toString());
+ shpDTO.setJCMJ(json.getJSONObject("properties").getDouble("JCMC"));
+ shpDTO.setTBLX(json.getJSONObject("properties").getString("TBLX"));
+ shpDTO.setDDTC(json.getJSONObject("properties").getString("DDTC"));
+ shpDTO.setHSX(json.getJSONObject("properties").getString("HSX"));
+ shpDTO.setJCLX(json.getJSONObject("properties").getString("JCLX"));
+ dtoList.add(shpDTO);
+ String str2 = json.getJSONObject("geometry").get("coordinates").toString();
+ strings.add(str2);
array.add(json);
}
iterator.close();
//添加到geojsonObject
- geoJsonObject.put("features",array);
+ geoJsonObject.put("features", array);
iterator.close();
- }catch (Exception e){
+ } catch (Exception e) {
throw e;
}
- return geoJsonObject;
+ return dtoList;
}
}
--
Gitblit v1.9.3