2015-08-21 52 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

相關問題