13693261870
2024-09-14 03984779caf4971bacca2fe7ed345e08f7f8a306
创建图形成功
已修改1个文件
35 ■■■■■ 文件已修改
src/main/java/com/se/simu/helper/ShpHelper.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;