Estou pesquisando neste site SE há algumas horas e ainda estou lutando para encontrar uma solução para minha pergunta. Meu objetivo é que, de certa forma, no OSM e na minha localização (coordenadas lat / lon), eu queira encontrar o local mais próximo (coordenadas lat / lon) nesse caminho. O ponto pode estar em qualquer lugar do caminho, não limitado aos pontos usados para definir o caminho.
Então, eu estou pensando no seguinte algoritmo:
- Caminho separado em arestas separadas, cada aresta conectando apenas dois pontos.
- Selecione a aresta mais próxima.
- Projete minha localização nessa extremidade.
Agora, existem muitas perguntas sobre o cálculo da distância entre um local e um caminho:
- Ponto WGS para distância do segmento de linha WGS (grande círculo)
- Cálculo da distância entre um ponto e uma linha virtual de dois lat / lngs
- Como aproximar ponto a segmento da distância na esfera?
Também uma pergunta muito semelhante, da qual não consigo acertar ou verificar os cálculos:
Há também algumas informações do Dr. Math sobre esse assunto. No entanto, parece que não consigo encontrar um algoritmo para calcular a localização na etapa 3. Como não toquei na álgebra (vetor) há um bom tempo, não entendo bem a lógica nessas respostas.
Alguém pode mostrar um algoritmo para fazer isso? Uma solução em qualquer linguagem de programação razoável está bem comigo.