From 3417cf014a65765e02696c1d121ce58b2b4a8aed Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期二, 08 四月 2025 15:55:36 +0800
Subject: [PATCH] 修改pom.xml

---
 src/main/java/com/se/simu/utils/ShpReadUtils.java |   26 +++++++++++++++++++++++---
 1 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/se/simu/utils/ShpReadUtils.java b/src/main/java/com/se/simu/utils/ShpReadUtils.java
index 25b5e19..49f6154 100644
--- a/src/main/java/com/se/simu/utils/ShpReadUtils.java
+++ b/src/main/java/com/se/simu/utils/ShpReadUtils.java
@@ -1,5 +1,10 @@
 package com.se.simu.utils;
 
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.module.SimpleModule;
 import org.geotools.data.DataStore;
 import org.geotools.data.DataStoreFinder;
 import org.geotools.data.FeatureSource;
@@ -13,6 +18,7 @@
 import org.opengis.feature.simple.SimpleFeatureType;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.*;
 
@@ -21,7 +27,15 @@
         readPointShp("D:\\鍩庡競鍐呮稘\\sem\\绠$偣\\pipeline-point.shp");
         //readPointShp("D:\\鍩庡競鍐呮稘\\sem\\绠$嚎\\pipeline-conduit.shp");
     }
-
+    static class GeometrySerializer extends JsonSerializer<Geometry> {
+        @Override
+        public void serialize(Geometry value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+            gen.writeStartObject();
+            gen.writeStringField("type", value.getGeometryType());
+            gen.writeObjectField("coordinates", value.getCoordinates());
+            gen.writeEndObject();
+        }
+    }
     /**
      * @param url shp鏂囦欢璺緞
      * @return shp瑙f瀽鍚庣殑鍐呭
@@ -30,7 +44,8 @@
     public static List<Map<String, Object>>  readPointShp(String url) throws Exception {
         Map<String, Object> map = new HashMap<String, Object>();
         File file = new File(url);
-        map.put("url", file.toURI().toURL());// 蹇呴』鏄疷RL绫诲瀷
+        map.put("url", file.toURI().toURL());
+        // 蹇呴』鏄疷RL绫诲瀷
         DataStore dataStore = DataStoreFinder.getDataStore(map);
         //瀛楃杞爜锛岄槻姝腑鏂囦贡鐮�
         ((ShapefileDataStore) dataStore).setCharset(Charset.forName("utf8"));
@@ -49,7 +64,12 @@
                 Property property = iterator.next();
                 if ("the_geom".equals(property.getName().toString())) {
                     Geometry geometry = reader.read(property.getValue().toString());
-                    objectMap.put(property.getName().toString(), geometry);
+                    SimpleModule module = new SimpleModule();
+                    module.addSerializer(Geometry.class, new GeometrySerializer());
+                    ObjectMapper mapper = new ObjectMapper();
+                    mapper.registerModule(module);
+                    String jsonString = mapper.writeValueAsString(geometry);
+                    objectMap.put(property.getName().toString(), jsonString);
                 } else {
                     objectMap.put(property.getName().toString(), property.getValue());
                 }

--
Gitblit v1.9.3