Si j'ai deux points, à partir desquels je veux créer un LineString
objet droit :
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
Le manuel Shapely pour lesLineString
États:
Une séquence d'
Point
instances n'est pas un paramètre constructeur valide. ALineString
est décrit par des points, mais n'est pas composé d'instances de point.
Donc, si j'ai deux points A
et B
, y a-t-il un moyen plus court / meilleur / plus facile de créer une ligne AB
que ma "meilleure" supposition actuelle ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... ce qui semble plutôt compliqué. Existe-t-il un moyen plus simple?
Mise à jour
Avec Shapely 1.3.2 publié aujourd'hui, la déclaration ci-dessus du manuel n'est plus correcte. Donc à partir de maintenant,
AB = LineString([A, B])
fonctionne !
shapely.__version__
accord) et le collage de votre code textuellement, je reçois une ValueError de linestring.pyc # 228 sur "L'entrée[<...Point object at 0x..>, <...Point object at 0x...>]
n'est pas la bonne forme pour une LineString". Ai-je raté quelque chose?La méthode de base est:
Vous pouvez également utiliser le découpage pour concaténer les listes de coordonnées:
la source