2015-08-21 50 views
2

我想知道如何以编程方式合并地图上的多个多边形为一体,这意味着它仍然具有相同的总体形状,但它们之间的边界被删除,它们将作为一组坐标,就像上图:如何合并多个多边形为一个在java中

http://i.imgur.com/OSmyRXh.png

我使用Eclipse和开放街道地图显示的Java。

(所以我有几组坐标,我想让它们成为一组而不会简化一般形状)。

+3

已经解决,请参阅http://stackoverflow.com/questions/2667748/how-do-i-combine-complex-polygons和http://mathoverflow.net/questions/111296/subtract-rectangle-从多边形/ 111323#111323 –

+1

@SashaSalauyou我不认为凸壳将在这种情况下工作,OP不会简化(改变)一般形状。 – Tawcharowsky

+0

我不认为这应该被标记为重复,因为我尝试在下面的答案中阐述。 –

回答

1

由@MartinFrank引用的union computation可以工作,但是相当复杂,并且比这种情况更需要。 很明显,如果你可以合并两个多边形P1P2共享一些积极的 长度的边界,你可以合并任何数字。 从提供的图像中可以看出,这些多边形可能正好(与大约相对的 )共享边界部分。如果是这种情况,那么以下 将工作。

步行(循环)的P1的边界附近,检查如果当前顶点是 也P2的顶点。一旦你确定了一个共享顶点v, 话,很容易向前走&落后围绕两个多边形直到找出开始一个和停止b顶点定界共同边界的程度。然后删除ab部分,并将其余两个边界 部分缝合在一起形成P1 union P2

相关问题