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