Proyectar un punto en un camino

Supongamos que tengo una matriz ordenada que contiene puntos(lat, lon) describiendo un camino, y también tengo un punto(lat, lon) describiendo mi ubicación actual.

¿Cómo puedo proyectar el punto en la ruta (y colocar el punto en el lugar apropiado de la matriz)?

Lo que probé es simplemente buscando los dos puntos más cercanos y suponiendo que está en el medio de ellos. Es una buena suposición, pero a veces falla.

¿Cuál sería una buena manera de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta