Tôi đã tìm kiếm trang SE này trong một vài giờ và tôi vẫn đang cố gắng tìm giải pháp cho câu hỏi của mình. Mục tiêu của tôi là đưa ra một cách trong OSM và vị trí của tôi (tọa độ lat / lon), tôi muốn tìm vị trí gần nhất (tọa độ lat / lon) trên đường đó. Điểm có thể ở bất cứ đâu trên đường, không giới hạn ở các điểm được sử dụng để xác định đường.
Vì vậy, tôi đang nghĩ về thuật toán sau:
- Đường dẫn riêng biệt thành các cạnh riêng biệt, mỗi cạnh chỉ kết nối hai điểm.
- Chọn cạnh gần nhất.
- Chiếu vị trí của tôi lên cạnh đó.
Bây giờ có nhiều câu hỏi về cách tính khoảng cách giữa vị trí và đường dẫn:
- WGS trỏ đến khoảng cách phân đoạn dòng WGS (vòng tròn lớn)
- Tính khoảng cách giữa một điểm và một đường ảo hai lat / lngs
- Làm thế nào để tính gần đúng điểm đến khoảng cách phân đoạn trên quả cầu?
Ngoài ra một câu hỏi tương tự mà tôi không thể xác định đúng hoặc xác minh:
Ngoài ra còn có một số thông tin từ Tiến sĩ Toán về chủ đề đó. Tuy nhiên, tôi dường như không thể tìm thấy một thuật toán để tính toán vị trí trong bước 3. Vì tôi đã không chạm vào đại số (vectơ) trong một thời gian dài, tôi không hiểu lắm logic trong các câu trả lời đó.
Ai đó có thể hiển thị một thuật toán để làm điều này? Một giải pháp trong bất kỳ ngôn ngữ lập trình hợp lý là tốt với tôi.