From: Michael B. <mic...@gm...> - 2009-06-22 10:29:16
|
Hi Christian, I might not understand your data properly, but I think you want to do something more like this... private List<LineString> splitMLines(ArrayList<MultiLineString> mlines) { GeometryFactory geomFactory = new GeometryFactory(); List<LineString> lines = new ArrayList<LineString>(); for (MultiLineString mls : mlines) { for (int i = 0; i < mls.getNumGeometries(); i++) { lines.add((LineString)mls.getGeometryN(i)); } } Geometry grandMls = geomFactory.buildGeometry(lines); Point mlsPt = geomFactory.createPoint(grandMls.getCoordinate()); Geometry nodedLines = grandMls.union(mlsPt); lines.clear(); for (int i = 0, n = nodedLines.getNumGeometries(); i < n; i++) { Geometry g = nodedLines.getGeometryN(i); if (g instanceof LineString) { lines.add((LineString)g); } } return lines; } Let us know what happens :) Michael |