Wenn Sie zwei Punkte haben, aus denen ich ein gerades LineStringObjekt erstellen möchte :
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
Das Shapely-Handbuch fürLineString Staaten:
Eine Folge von
PointInstanzen ist kein gültiger Konstruktorparameter. ALineStringwird durch Punkte beschrieben, besteht jedoch nicht aus Punktinstanzen.
Wenn ich also zwei Punkte habe Aund B, gibt es eine kürzere / bessere / einfachere Möglichkeit, eine Linie zu erstellen ABals meine derzeitige "beste" Vermutung ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... was ziemlich kompliziert aussieht. Gibt es einen einfacheren Weg?
Aktualisieren
Mit dem heute veröffentlichten Shapely 1.3.2 ist die obige Aussage aus dem Handbuch nicht mehr korrekt. Also von nun an,
AB = LineString([A, B])
funktioniert !
shapely.__version__Computer) erhalte ich nach dem Upgrade auf Shapely 1.3.1 ( zustimmend) und dem wörtlichen Einfügen Ihres Codes von linestring.pyc # 228 einen ValueError über "Eingabe[<...Point object at 0x..>, <...Point object at 0x...>]ist die falsche Form für einen LineString". Habe ich etwas verpasst