Je fais des recherches sur ce site SE depuis quelques heures maintenant, et j'ai encore du mal à trouver une solution à ma question. Mon objectif est que, étant donné un chemin dans OSM et ma position (coordonnées lat / lon), je veux trouver la position la plus proche (coordonnées lat / lon) de cette façon. Le point peut être n'importe où sur le chemin, sans se limiter aux points utilisés pour définir le chemin.
Je pense donc à l'algorithme suivant:
- Chemin séparé en arêtes distinctes, chaque arête ne reliant que deux points.
- Sélectionnez le bord le plus proche.
- Projetez mon emplacement sur ce bord.
Maintenant, il y a beaucoup de questions sur le calcul de la distance entre un emplacement et un chemin:
- Point WGS sur la distance du segment de ligne WGS (grand cercle)
- Calcul de la distance entre un point et une ligne virtuelle de deux lat / lngs
- Comment approximer la distance point à segment sur la sphère?
Aussi une question très similaire dont je ne peux pas obtenir les calculs corrects ou vérifiés:
Il y a aussi quelques informations du Dr Math à ce sujet. Cependant, je n'arrive pas à trouver d'algorithme pour calculer l'emplacement à l'étape 3. Comme je n'ai pas touché l'algèbre (vectorielle) depuis un bon moment, je ne comprends pas très bien la logique de ces réponses.
Quelqu'un peut-il montrer un algorithme pour ce faire? Une solution dans n'importe quel langage de programmation raisonnable me convient.