Se tiver dois pontos, dos quais quero criar um LineString
objeto direto :
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
O manual Shapely paraLineString
estados:
Uma sequência de
Point
instâncias não é um parâmetro de construtor válido. ALineString
é descrito por pontos, mas não é composto de instâncias de ponto.
Portanto, se eu tenho dois pontos A
e B
, existe uma maneira mais curta / melhor / mais fácil de criar uma linha do AB
que o meu "melhor" palpite atual ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... o que parece bastante complicado. Existe uma maneira mais fácil?
Atualizar
Com o Shapely 1.3.2 lançado hoje, a declaração acima do manual não está mais correta. Então, de agora em diante,
AB = LineString([A, B])
funciona !
shapely.__version__
concordar) e colar o código literalmente, recebo um ValueError de linestring.pyc # 228 sobre "Entrada[<...Point object at 0x..>, <...Point object at 0x...>]
é a forma errada para um LineString". Perdi alguma coisa?O método base é:
Você também pode usar o fatiamento para concatenar as listas de coordenadas:
fonte