Wenn Sie zwei Punkte haben, aus denen ich ein gerades LineString
Objekt 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
Point
Instanzen ist kein gültiger Konstruktorparameter. ALineString
wird durch Punkte beschrieben, besteht jedoch nicht aus Punktinstanzen.
Wenn ich also zwei Punkte habe A
und B
, gibt es eine kürzere / bessere / einfachere Möglichkeit, eine Linie zu erstellen AB
als 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 verpasstDie Basismethode ist:
Sie können die Koordinatenlisten auch mit Slicing verketten:
quelle