Nếu có hai điểm, từ đó tôi muốn tạo một LineStringđối tượng thẳng :
from shapely.geometry import Point, LineString
A = Point(0,0)
B = Point(1,1)
Các nhãn hiệu kiểu dáng cân đối choLineString tiểu bang:
Một chuỗi các
Pointtrường hợp không phải là một tham số xây dựng hợp lệ. ALineStringđược mô tả bởi các điểm, nhưng không bao gồm các trường hợp Điểm.
Vì vậy, nếu tôi có hai điểm Avà B, có cách nào tạo ra một dòng ngắn hơn / tốt hơn / dễ dàng ABhơn so với dự đoán "tốt nhất" hiện tại của tôi không ...
AB = LineString(tuple(A.coords) + tuple(B.coords))
... có vẻ khá phức tạp. Có cách nào dễ hơn không?
Cập nhật
Với Shapely 1.3.2 được phát hành ngày hôm nay, tuyên bố trên từ hướng dẫn sử dụng không còn đúng nữa. Vì vậy, từ bây giờ,
AB = LineString([A, B])
làm việc !
shapely.__version__đồng ý) và dán nguyên văn mã của bạn, tôi nhận được ValueError từ linestring.pyc # 228 về "Đầu vào[<...Point object at 0x..>, <...Point object at 0x...>]là hình dạng sai cho LineString". Tôi đã bỏ lỡ một cái gì đó?