[英]How to create a shapely Polygon from a list of shapely Points?
我想從形狀勻稱的點創建一個多邊形。
from shapely import geometry
p1 = geometry.Point(0,0)
p2 = geometry.Point(1,0)
p3 = geometry.Point(1,1)
p4 = geometry.Point(0,1)
pointList = [p1, p2, p3, p4, p1]
poly = geometry.Polygon(pointList)
給我一個類型錯誤TypeError: object of type 'Point' has no len()
如何從形狀優美的Point
對象創建Polygon
?
如果您特別想從勻稱的幾何點構建多邊形,請在列表推導式中調用它們的 x、y 屬性。 換句話說:
from shapely import geometry
poly = geometry.Polygon([[p.x, p.y] for p in pointList])
print(poly.wkt) # prints: 'POLYGON ((0 0, 1 0, 1 1, 0 1, 0 0))'
請注意,shapely 足夠聰明,可以代表您關閉多邊形,即您不必在最后再次傳入第一個點。
Polygon
對象需要嵌套的數字列表,而不是Point
對象的列表。
polygon = Polygon([[0, 0], [1, 0], [1, 1], [0, 1]])
Polygon
構造函數不需要Point
對象列表,而是需要點坐標列表。
見https://shapely.readthedocs.io/en/latest/manual.html#polygons
polygon = Polygon([[0, 0], [1, 0], [1, 1], [0, 1]])
只需輸入導入部分。
我發布了一個新的答案,因為我不能評論以前的帖子作為評論,因為我缺乏“點”
你可以這樣做:
p1 = geometry.Point(0,0)
p2 = geometry.Point(1,0)
p3 = geometry.Point(1,1)
p4 = geometry.Point(0,1)
pointList = [p1, p2, p3, p4]
poly = geometry.Polygon([i for i in pointList])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.