From 07b0c2b723f16d88c64a0e9151fdbef81a0a8a74 Mon Sep 17 00:00:00 2001
From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com>
Date: 星期一, 13 一月 2025 17:54:10 +0800
Subject: [PATCH] [add]管线json

---
 src/main/java/com/se/simu/utils/ShpReadUtils.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 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..137ff83 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,15 +18,24 @@
 import org.opengis.feature.simple.SimpleFeatureType;
 
 import java.io.File;
+import java.io.IOException;
 import java.nio.charset.Charset;
 import java.util.*;
 
 public class ShpReadUtils {
     public static void main(String[] args) throws Exception {
-        readPointShp("D:\\鍩庡競鍐呮稘\\sem\\绠$偣\\pipeline-point.shp");
-        //readPointShp("D:\\鍩庡競鍐呮稘\\sem\\绠$嚎\\pipeline-conduit.shp");
+        //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