如何在java中将多个多边形合并为一个多边形

如何在java中将多个多边形合并为一个多边形,java,eclipse,coordinates,polygon,openstreetmap,Java,Eclipse,Coordinates,Polygon,Openstreetmap,我想知道如何通过编程将地图上的几个多边形合并为一个,这意味着它仍然具有相同的总体形状,但它们之间的边界被删除,它们将作为一组坐标工作,如图所示: 我在eclipse上使用java并打开街道地图进行显示 (因此,我有几组坐标,我想在不简化一般形状的情况下将它们做成一组)。正如@MartinFrank所引用的那样,可以工作,但非常复杂,超出了本例的需要。 很明显,如果你能合并两个多边形P1和P2,它们共享一些正多边形 边界的长度,可以合并任意数。 从提供的图像来看,多边形似乎完全可以(与 大约)共

我想知道如何通过编程将地图上的几个多边形合并为一个,这意味着它仍然具有相同的总体形状,但它们之间的边界被删除,它们将作为一组坐标工作,如图所示:

我在eclipse上使用java并打开街道地图进行显示

(因此,我有几组坐标,我想在不简化一般形状的情况下将它们做成一组)。

正如@MartinFrank所引用的那样,可以工作,但非常复杂,超出了本例的需要。 很明显,如果你能合并两个多边形P1和P2,它们共享一些正多边形 边界的长度,可以合并任意数。 从提供的图像来看,多边形似乎完全可以(与 大约)共享边界部分。如果是这样的话,那么下面 会有用的

围绕P1的边界漫游(循环),检查当前顶点是否为 也是P2的一个顶点。一旦确定了公共共享顶点v, 然后很容易围绕两个多边形向前和向后行走,直到确定界定共享边界范围的开始a和停止b顶点。然后删除ab部分,缝合剩下的两个边界
将截面组合在一起形成P1联合P2。

这已经解决,请参见和@SashaSalauyou。我认为凸面外壳在这种情况下不起作用,OP不需要简化(更改)一般形状。我不认为这应该标记为重复,因为我试图在下面的回答中阐明原因。因为您提到了OSM,(一个基于Java的OSM编辑器)有一个的实现。也许你可以借用它的代码。