Przeszukuję tę stronę SE już od kilku godzin i wciąż mam trudności z znalezieniem rozwiązania mojego pytania. Moim celem jest to, że biorąc pod uwagę sposób w OSM i moją lokalizację (współrzędne lat / lon), chcę znaleźć najbliższą lokalizację (współrzędne lat / lon) na tej drodze. Punkt może znajdować się w dowolnym miejscu po drodze, nie ograniczając się do punktów użytych do zdefiniowania drogi.
Mam na myśli następujący algorytm:
- Rozdziel ścieżkę na osobne krawędzie, przy czym każda krawędź łączy tylko dwa punkty.
- Wybierz najbliższą krawędź.
- Wyświetl moją lokalizację na tej krawędzi.
Teraz jest wiele pytań dotyczących obliczania odległości między lokalizacją a ścieżką:
- Punkt WGS wskazuje odległość odcinka linii WGS (wielkie koło)
- Obliczanie odległości między punktem a wirtualną linią dwóch lat / lngs
- Jak przybliżać odległość między punktami na kuli?
Również bardzo podobne pytanie, którego nie mogę poprawnie wyliczyć lub zweryfikować:
Jest też kilka informacji od dr Matha na ten temat. Jednak nie mogę znaleźć algorytmu do obliczenia lokalizacji w kroku 3. Ponieważ od dłuższego czasu nie dotknąłem algebry (wektorowej), nie do końca rozumiem logikę tych odpowiedzi.
Czy ktoś może pokazać algorytm, aby to zrobić? Rozwiązanie w dowolnym rozsądnym języku programowania jest dla mnie w porządku.