Sto cercando questo sito SE da un paio d'ore ormai, e sto ancora lottando per trovare una soluzione alla mia domanda. Il mio obiettivo è quello dato un modo in OSM e la mia posizione (coordinate lat / lon), voglio trovare la posizione più vicina (coordinate lat / lon) in quel modo. Il punto può essere ovunque lungo la strada, non limitato ai punti utilizzati per definire la strada.
Quindi sto pensando al seguente algoritmo:
- Separare il percorso in bordi separati, ogni bordo collega solo due punti.
- Seleziona il bordo più vicino.
- Proietta la mia posizione su quel bordo.
Ora ci sono molte domande sul calcolo della distanza tra una posizione e un percorso:
- WGS indica la distanza del segmento di linea WGS (cerchio grande)
- Calcolo della distanza tra un punto e una linea virtuale di due lat / lng
- Come approssimare la distanza punto-segmento sulla sfera?
Anche una domanda molto simile di cui non riesco a ottenere i calcoli giusti o verificati:
Ci sono anche alcune informazioni da parte del Dr. Math sull'argomento. Tuttavia, non riesco a trovare un algoritmo per calcolare la posizione nel passaggio 3. Dato che non ho toccato l'algebra (vettoriale) da un po 'di tempo, non capisco bene la logica in quelle risposte.
Qualcuno può mostrare un algoritmo per fare questo? Una soluzione in qualsiasi linguaggio di programmazione ragionevole va bene per me.