java:如何将多行字符串转换为多边形
我得到了一些峡谷区域的两条等高线,但它们没有闭合。很明显,它们确实代表了一个结果区域。我如何通过代码来关闭它们 让我们假设两行字符串类似java:如何将多行字符串转换为多边形,java,geotools,Java,Geotools,我得到了一些峡谷区域的两条等高线,但它们没有闭合。很明显,它们确实代表了一个结果区域。我如何通过代码来关闭它们 让我们假设两行字符串类似 LineString lineString1 = geometryFactory.createLineString(new Coordinate[]{ new Coordinate(0, 0), new Coordinate(10, 0) }); LineString lineStrin
LineString lineString1 = geometryFactory.createLineString(new Coordinate[]{
new Coordinate(0, 0),
new Coordinate(10, 0)
});
LineString lineString2 = geometryFactory.createLineString(new Coordinate[]{
new Coordinate(0, 2),
new Coordinate(10, 2)
});
List<LineString> lineStrings = Arrays.asList(lineString1, lineString2);
Geometry geometry = geometryFactory.buildGeometry(lineStrings);
// MULTILINESTRING ((0 0, 10 0), (0 2, 10 2))
Geometry union = geometry.union();
// MULTILINESTRING ((0 0, 10 0), (0 2, 10 2))
LinearRing linearRing = geometryFactory.createLinearRing(geometry.getCoordinates());
// Exception: Points of LinearRing do not form a closed linestring
非常感谢您的帮助。您正在寻找的概念是凸包或凸包。@PaulJanssens上面的代码只是为了简化问题,实际结果更像是“Y”形或“X”形,甚至更复杂。凸包只会得到外圈。列出所有不连续性,并将它们与最近的邻居配对?
LINESTRING ((0 0, 10 0, 10 2, 0 2, 0 0))