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