Có một polyline với danh sách tọa độ của các đỉnh = [(x1, y1), (x2, y2), (x3, y3), ...] và một điểm (x, y). Trong Shapely, geometry1.distance(geometry2)
trả về khoảng cách ngắn nhất giữa hai hình học.Tọa độ của điểm gần nhất trên một dòng
>>> from shapely.geometry import LineString, Point
>>> line = LineString([(0,0),(5,7),(12,6)]) #geometry2
>>> list(line.coords)
[(0.0, 0.0), (5.0, 7.0), (12.0, 6.0)]
>>> p = Point(4,8) #geometry1
>>> list(p.coords)
[(4.0, 8.0)]
>>> p.distance(line)
1.4142135623730951
Nhưng tôi cũng cần phải tìm tọa độ của điểm trên đường gần nhất với điểm (x, y). Trong ví dụ trên, đây là tọa độ của điểm trên đối tượng LineString là 1.4142135623730951 đơn vị nằm xa Điểm (4.8). Khoảng cách phương thức() phải có tọa độ khi tính toán khoảng cách. Có cách nào để đưa nó trở về từ phương pháp này không?
lưu ý nhanh chóng cho bất cứ ai có thể sau bài viết: 'line.project (p) 'biện pháp điểm chiếu dọc theo đường từ khởi đầu nút-tọa độ được đưa ra trong lý luận của phương pháp LineString(). Nhưng 'np = line.interpolate (line.project (p))' cung cấp POINT (5 7) như trong tọa độ chung, không phải từ đầu dòng. Ở đây dòng bắt đầu từ (0,0). Vì vậy, nó có thể gây nhầm lẫn. –