好的,我有很多多边形(图中用白色标出)。
尝试将所有多边形添加到一起,以便得到一个多边形,这是所有多边形的外边界,我已将每个Polygon(java类)转换为Area(java类),然后添加区域与Area类提供的add(Area a)方法一起使用。
从那里我将区域转换回多边形并将其绘制为填充的多边形(图像中的紫色区域)。
然而,这并不是我所期待的。任何人都可以想到我可以正确地做到这一点,或者至少只是将三角形区域添加到我的多边形?
当我只用填充绘制所有单独的多边形时,我得到了我想要的(绘制的),但我需要它的多边形表示。
答案 0 :(得分:0)
我可以建议使用JTS。只需创建要组合的几何图形,然后使用union方法。之后,您可以使用新几何体并使用之前的代码进行绘制。 union的简单代码示例:
// build polygon p1
Polygon p1 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,10), new Coordinate(10,10), new Coordinate(10,0), new Coordinate(0,0)});
// build polygon p2
Polygon p2 = new GeometryFactory().createPolygon(new Coordinate[]{new Coordinate(0,0), new Coordinate(0,30), new Coordinate(5,30), new Coordinate(5,0), new Coordinate(0,0)});
// calculate polygon3 as the union of p1 and p2
Polygon p3 = (Polygon) p1.union(p2);
// print simple WKT
System.out.println(p3.toText());
在这种情况下的输出(如预期的那样):
POLYGON ((0 0, 0 10, 0 30, 5 30, 5 10, 10 10, 10 0, 5 0, 0 0))