2016-04-21 71 views
3

我有勻稱的多邊形合併多邊形的列表Multipolygons

myList = [[<shapely.geometry.polygon.Polygon object at 0x110e09d90>], [<shapely.geometry.polygon.Polygon object at 0x110e09f90>], [<shapely.geometry.polygon.Polygon object at 0x110ec9150>]] 

我將如何創建一個MultiPolygon了他們的名單?我無法繞過它

+0

你的列表中包含每個包含一個多邊形數單元素列表。你的問題表明你期待一個多邊形列表。 –

+0

@Pythonista cascaded_union從多邊形列表中創建一個多邊形(如我在這裏發佈的?) – Stophface

+2

這裏有一個'cascaded_union'用法的例子。更容易看看代碼,看看它是否你需要http://deparkes.co.uk/2015/02/28/how-to-merge-polygons-in-python/ – Pythonista

回答

2

它看起來像你有一個列表(每個都有一個項目)。在你做任何事情,使幾何形狀的平面列表:

myGeomList = [x[0] for x in myList] 

實際上有幾個選擇把它們結合起來。最好的做法是在幾何圖形列表上進行級聯,這可能會導致不同的幾何圖形類型,例如MultiPolygon,但並非總是如此。

from shapely.ops import cascaded_union 
cu = cascaded_union(myGeomList) 

或者你也可以通過列表來MultiPolgyon()GeometryCollection(),但這些可能出現的問題(無效,不能使用覆蓋OPS等)

+1

好答案!直接使用MultiPolgyon()不會引發錯誤,但會導致錯誤的結果。將多邊形和多邊形組合到新的多邊形時進行測試。 –