Здесь вы можете найти формулы и JS-код для получения расстояния между координатами
JavaScript:
var R = 6371e3; // metres
var φ1 = lat1.toRadians();
var φ2 = lat2.toRadians();
var Δφ = (lat2-lat1).toRadians();
var Δλ = (lon2-lon1).toRadians();
var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
Math.cos(φ1) * Math.cos(φ2) *
Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
var d = R * c;
Насколько я понимаю, вы должны проверить расстояния между точкой и всеми остановочными узлами по порядку.,
Наименьшая сумма расстояний P-S[i]
и P-S[i+1]
показывает наиболее близкий отрезок к этой точке (не всегда работает - например, для самопересекающихся путей и т. Д.)