Если есть две точки, из которых я хочу создать прямой 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». Я что-то пропустил?Базовый метод:
Вы также можете использовать нарезку для объединения списков координат:
источник