From 03984779caf4971bacca2fe7ed345e08f7f8a306 Mon Sep 17 00:00:00 2001
From: 13693261870 <252740454@qq.com>
Date: 星期六, 14 九月 2024 14:19:06 +0800
Subject: [PATCH] 创建图形成功

---
 src/main/java/com/se/simu/helper/ShpHelper.java |   35 +++++++++++++++++++++--------------
 1 files changed, 21 insertions(+), 14 deletions(-)

diff --git a/src/main/java/com/se/simu/helper/ShpHelper.java b/src/main/java/com/se/simu/helper/ShpHelper.java
index f2312d8..57d813a 100644
--- a/src/main/java/com/se/simu/helper/ShpHelper.java
+++ b/src/main/java/com/se/simu/helper/ShpHelper.java
@@ -106,26 +106,33 @@
                 g.AddPoint_2D(cs.getDouble(0), cs.getDouble(1));
                 break;
             case "MultiLineString":
-                //g = new Geometry(ogr.wkbMultiLineString);
-                Geometry line = new Geometry(ogr.wkbLineString);
-                //g.AddGeometry(line);
-                cs = cs.getJSONArray(0).getJSONArray(0);
+                g = new Geometry(ogr.wkbMultiLineString);
                 for (int i = 0, c = cs.size(); i < c; i++) {
-                    JSONArray arr = cs.getJSONArray(i);
-                    line.AddPoint_2D(arr.getDouble(0), arr.getDouble(1));
+                    Geometry line = new Geometry(ogr.wkbLineString);
+                    JSONArray lineArr = cs.getJSONArray(i);
+                    for (int j = 0, d = lineArr.size(); j < d; j++) {
+                        JSONArray arr = lineArr.getJSONArray(j);
+                        line.AddPoint_2D(arr.getDouble(0), arr.getDouble(1));
+                    }
+                    g.AddGeometry(line);
                 }
-                g = line;
                 break;
             case "MultiPolygon":
-                //g = new Geometry(ogr.wkbMultiPolygon);
-                Geometry ring = new Geometry(ogr.wkbLinearRing);
-                //g.AddGeometry(line);
-                cs = cs.getJSONArray(0).getJSONArray(0);
+                g = new Geometry(ogr.wkbMultiPolygon);
                 for (int i = 0, c = cs.size(); i < c; i++) {
-                    JSONArray arr = cs.getJSONArray(i);
-                    ring.AddPoint_2D(arr.getDouble(0), arr.getDouble(1));
+                    Geometry poly = new Geometry(ogr.wkbPolygon);
+                    JSONArray polyArr = cs.getJSONArray(i);
+                    for (int j = 0, d = polyArr.size(); j < d; j++) {
+                        Geometry ring = new Geometry(ogr.wkbLinearRing);
+                        JSONArray ringArr = polyArr.getJSONArray(j);
+                        for (int k = 0, e = ringArr.size(); k < e; k++) {
+                            JSONArray arr = ringArr.getJSONArray(k);
+                            ring.AddPoint_2D(arr.getDouble(0), arr.getDouble(1));
+                        }
+                        poly.AddGeometry(ring);
+                    }
+                    g.AddGeometry(poly);
                 }
-                g = ring;
                 break;
         }
         return g;

--
Gitblit v1.9.3