0
我想用Python中使用Shapely庫的多邊形相交複合線。不幸的是,Shapely會破壞我的原始線條,以便它返回一條簡單的線條。如何在形狀相交期間保留一條複雜的線
例如:
# complex line folded back on itself (A-B-A)
ls = shapely.geometry.LineString([(1,0), (1,2), (1,0)])
ls.length == 4.0
# intersected with a covering bounding box
bounding_box = shapely.geometry.Polygon([(0,0), (0,2), (2,2), (2,0)])
intersected = bounding_box.intersection(ls)
# LINESTRING (1 0, 1 2) - (A-B)
intersected.length == 2.0
你可以看到,在原線路重複的組件已經一去不復返了。我可以理解這種行爲來自哪裏,在大多數情況下這可能是理智的選擇。
我正在尋找一種方法來完成交集,以便保留原始的行信息。在這種退化的情況下,我希望最終會得到完全相同的幾何形狀,一條長度爲4的摺疊線。在其他更復雜的情況下,我交叉的多邊形將切出原始線條,但我仍然需要在交集內保留任何重複的線段。
你的行不是簡單的(即'ls.is_simple是False'),這就是重疊不被保留的原因。您可能需要提取重疊線段,這聽起來不太容易。 –
這就是我使用的方法。其實,會在下面發帖。最初我實際上堆積了一系列三維線,希望能夠獨立切片。恥辱它不起作用,將在我的情況下超級有用! –