From 95a8d926d951c8c00b0f60f64bd48ff970e9960c Mon Sep 17 00:00:00 2001
From: 张洋洋 <10611411+yang-yang-z@user.noreply.gitee.com>
Date: 星期二, 14 一月 2025 11:10:16 +0800
Subject: [PATCH] [add]管线json

---
 src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java |   32 ++++++++++++++++++++++++++++++++
 src/main/java/com/se/simu/utils/ShpReadUtils.java               |    4 ++--
 pom.xml                                                         |    5 +++++
 src/main/java/com/se/simu/controller/SimuController.java        |    7 +------
 4 files changed, 40 insertions(+), 8 deletions(-)

diff --git a/pom.xml b/pom.xml
index 455621b..bf667d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -298,6 +298,11 @@
             <artifactId>jts</artifactId>
             <version>1.13</version>
         </dependency>
+        <dependency>
+            <groupId>org.osgeo</groupId>
+            <artifactId>proj4j</artifactId>
+            <version>0.1.0</version>
+        </dependency>
     </dependencies>
     <repositories>
         <repository>
diff --git a/src/main/java/com/se/simu/controller/SimuController.java b/src/main/java/com/se/simu/controller/SimuController.java
index 5879100..8aab3c3 100644
--- a/src/main/java/com/se/simu/controller/SimuController.java
+++ b/src/main/java/com/se/simu/controller/SimuController.java
@@ -467,12 +467,7 @@
             JSONArray array = JSONObject.parseObject(map.get("the_geom").toString()).getJSONArray("coordinates");
             for (int i = 0; i < array.size(); i++) {
                 JSONObject object = JSONObject.parseObject(array.get(i).toString());
-                JSONArray vertice = new JSONArray();
-                //todo 鏈潵淇敼鍧愭爣绯�
-                vertice.add(object.get("x"));
-                vertice.add(object.get("y"));
-                vertice.add(0.0);
-                jsonObject.getJSONArray("vertices").add(vertice);
+                jsonObject.getJSONArray("vertices").add(ProjectionToGeographicUtil.getPoint(Double.valueOf(object.get("x").toString()),Double.valueOf(object.get("y").toString())));
                 boundarie.add(jsonObject.getJSONArray("vertices").size());
             }
             metry.put("boundaries", boundarie);
diff --git a/src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java b/src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java
new file mode 100644
index 0000000..de0de6e
--- /dev/null
+++ b/src/main/java/com/se/simu/utils/ProjectionToGeographicUtil.java
@@ -0,0 +1,32 @@
+package com.se.simu.utils;
+
+import com.alibaba.fastjson.JSONArray;
+import org.osgeo.proj4j.BasicCoordinateTransform;
+import org.osgeo.proj4j.CRSFactory;
+import org.osgeo.proj4j.CoordinateReferenceSystem;
+import org.osgeo.proj4j.ProjCoordinate;
+
+public class ProjectionToGeographicUtil {
+    public static JSONArray getPoint(Double x,Double y) {
+        // 鍒涘缓 CRSFactory 瀵硅薄
+        CRSFactory crsFactory = new CRSFactory();
+        // 瀹氫箟鎶曞奖鍧愭爣绯荤粺锛岃繖閲屼互 UTM 鎶曞奖涓轰緥锛寊one 33N
+        CoordinateReferenceSystem sourceCRS = crsFactory.createFromName("EPSG:4548");
+        // 瀹氫箟鍦扮悊鍧愭爣绯荤粺锛岃繖閲屼娇鐢� WGS84
+        CoordinateReferenceSystem targetCRS = crsFactory.createFromName("EPSG:4326");
+        // 鍒涘缓鍧愭爣杞崲瀵硅薄
+        BasicCoordinateTransform transform = new BasicCoordinateTransform(sourceCRS, targetCRS);
+        //lon=116.683795  lat=39.90849042
+        // 杈撳叆鎶曞奖鍧愭爣锛屼互 UTM 鎶曞奖鍧愭爣涓轰緥锛屽崟浣嶆槸绫�
+        ProjCoordinate sourceCoord = new ProjCoordinate(x, y);
+        ProjCoordinate targetCoord = new ProjCoordinate();
+
+        // 鎵ц鍧愭爣杞崲
+        transform.transform(sourceCoord, targetCoord);
+        JSONArray vertice = new JSONArray();
+        vertice.add(targetCoord.x);
+        vertice.add(targetCoord.y);
+        vertice.add(0.0);
+        return vertice;
+    }
+}
diff --git a/src/main/java/com/se/simu/utils/ShpReadUtils.java b/src/main/java/com/se/simu/utils/ShpReadUtils.java
index 137ff83..49f6154 100644
--- a/src/main/java/com/se/simu/utils/ShpReadUtils.java
+++ b/src/main/java/com/se/simu/utils/ShpReadUtils.java
@@ -24,8 +24,8 @@
 
 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

--
Gitblit v1.9.3