Если есть две точки, из которых я хочу создать прямой LineStringобъект:
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
Руководство Shapely дляLineString государств:
Последовательность
Pointэкземпляров не является допустимым параметром конструктора. ALineStringописывается точками, но не состоит из экземпляров Point.
Так что, если у меня есть две точки Aи Bесть ли более короткий / лучший / простой способ создания линии, ABчем мое текущее "лучшее" предположение ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... что выглядит довольно сложно. Есть ли более простой способ?
Обновить
В сегодняшнем выпуске Shapely 1.3.2 вышеприведенное утверждение из руководства больше не является правильным. Так что теперь,
AB = LineString([A, B])
работает !
shapely.__version__согласен) и дословного вставления кода я получаю ValueError из linestring.pyc # 228 о «Ввод[<...Point object at 0x..>, <...Point object at 0x...>]неправильной формы для LineString». Я что-то пропустил?