Jeśli mają dwa punkty, z których chcę utworzyć prosty LineString
obiekt:
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
Podręcznik Shapely dlaLineString
stanów:
Sekwencja
Point
instancji nie jest poprawnym parametrem konstruktora. ALineString
jest opisany punktami, ale nie składa się z instancji Point.
Więc jeśli mam dwa punkty A
i B
czy istnieje krótszy / lepszy / łatwiejszy sposób tworzenia linii AB
niż moje obecne „najlepsze” przypuszczenie ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... co wydaje się dość skomplikowane. Czy istnieje prostszy sposób?
Aktualizacja
W dzisiejszym wydanym Shapely 1.3.2 powyższe stwierdzenie z instrukcji nie jest już poprawne. Więc od teraz
AB = LineString([A, B])
działa !
shapely.__version__
zgadza się) i wklejeniu twojego kodu dosłownie, otrzymuję ValueError z linestring.pyc # 228 na temat „Dane wejściowe[<...Point object at 0x..>, <...Point object at 0x...>]
mają niewłaściwy kształt dla LineString”. Czy coś przeoczyłem?Podstawową metodą jest:
Możesz także użyć wycinania, aby połączyć listy współrzędnych:
źródło