給定兩個多邊形:POLYGON((1 0, 1 8, 6 4, 1 0))POLYGON((4 1, 3 5, 4 9, 9 5, 4 1),(4 5, 5 7, 6 7, 4 4, 4 5))如何計算聯合(組合多邊形)?Dave的示例使用SQL Server生成聯合,但是我需要在代碼中完成相同的操作。我正在尋找可以公開實際數學的任何語言的數學公式或代碼示例。我正在嘗試制作將國家動態地組合成區域的地圖。我在這里問了一個相關的問題:對地理形狀進行分組
3 回答

隔江千里
TA貢獻1906條經驗 獲得超10個贊
這是一個具有挑戰性但易于理解的主題,通常以“對多邊形進行規則化的布爾運算”為名。你可以看看 這個MathOverflow答案,其中包括如下圖(從艾倫默塔的剪輯庫),用粉紅色聯盟OP的結合:

呼喚遠方
TA貢獻1856條經驗 獲得超11個贊
好問題!我以前從未嘗試過,但是現在我會嘗試一下。
首先:您需要知道這兩個形狀在哪里重疊。為此,您可以查看“多邊形A”中的每個邊,查看其相交的位置以及在“多邊形B”中的邊。在此示例中,應該有兩個相交點。
然后:制作并集形狀。您可以獲取A和B中的所有頂點以及相交點,然后排除最終形狀所包含的頂點。為了找到這些點,您似乎可以找到位于B內的A的任何頂點,以及位于A內的B的任何頂點。
添加回答
舉報
0/150
提交
取消