我有一个多边形和一个线段,它的端点位于多边形的两侧。将多边形分成两个多边形的最简单方法是什么。(我正在使用 jts 包)。
我曾尝试使用多边形化器,但我认为我没有正确使用它,因为它似乎不起作用。
谢谢,
我有一个多边形和一个线段,它的端点位于多边形的两侧。将多边形分成两个多边形的最简单方法是什么。(我正在使用 jts 包)。
我曾尝试使用多边形化器,但我认为我没有正确使用它,因为它似乎不起作用。
谢谢,
迟到的答案,但也许有人也想知道这一点。
假设您有以下几何图形:
GEOMETRYCOLLECTION (POLYGON ((100 150, 100 340, 350 340, 350 150, 100 150)), LINESTRING (220 340, 220 150))
您可以尝试行合并此几何集合,结果应为:
MULTILINESTRING ((220 340, 220 150), (100 150, 100 340, 350 340, 350 150, 100 150))
从这里做一个一元联合,结果是:
MULTILINESTRING ((220 340, 220 150), (100 150, 100 340, 220 340), (220 340, 350 340, 350 150, 220 150), (220 150, 100 150))
最后,您可以使用多边形器并获得两个多边形:
GEOMETRYCOLLECTION (POLYGON ((220 150, 220 340, 350 340, 350 150, 220 150)), POLYGON ((100 150, 100 340, 220 340, 220 150, 100 150)))
所以要让多边形器工作,你必须给他单个线串作为输入,而不是整个多边形。
在 JTS testbuilder 中测试
我通过使线段成为一个非常大的多边形的一部分然后与这两个多边形相交来做了类似的事情。您可以通过在段的每一端添加段来制作大多边形,直到您超出多边形的边界,然后在 90 度处添加两个超出原始多边形边界的段,然后将最后两个段与一个最终分段,以制作一个大多边形,该多边形沿原始分段分割原始多边形并围绕原始多边形的其余部分。这相当痛苦,但有效。吉姆