我的 python3 腳本創(chuàng)建了一個(gè)變量,其值是形狀文件列表,每個(gè)形狀文件都是一個(gè)表示地理區(qū)域的多邊形geometries_list[<shapefile.Shape at 0x7f060abfae48>, <shapefile.Shape at 0x7f05dcaf1cc0>, <shapefile.Shape at 0x7f060a86b278>, <shapefile.Shape at 0x7f05da470668>]我想“合并”多邊形。我嘗試了以下代碼from functools import reducefrom shapely.geometry import Polygonunion = reduce(lambda x,y: x.union(y), geometries_list) 但它給出了結(jié)果:屬性錯(cuò)誤:“Shape”對(duì)象沒(méi)有屬性“并集”我看到另一種方法,它涉及創(chuàng)建一個(gè)形狀文件編寫(xiě)器對(duì)象并連續(xù)覆蓋列表上的每個(gè)多邊形 https://gis.stackexchange.com/questions/103033/using-pyshp-to-merge-two-shapefiles 此方法可能有效,但每個(gè)覆蓋都保存到磁盤
1 回答

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊
也許值得一提的是,shapely.ops.unary_union是合并形狀的更有效方法。
您可以通過(guò)對(duì)象的 GeoJSON 表示形式將對(duì)象轉(zhuǎn)換為對(duì)象,并按如下方式合并它們。shapefile.Shapeshapely.Polygon
from shapely.geometry import shape
from shapely.geometry.ops import unary_union
union = unary_union([shape(s.__geo_interface__) for s in geometries_list])
添加回答
舉報(bào)
0/150
提交
取消