Добрый день,
Есть маршрут Москва - Нижний Новгород. Маршрут протяжоностью 490 км.
Стоит задача отображать ДТП на этой трассе. Но координат ДТП нет, есть описание инспектора о том, что ДТП произошло на 56 км 800 м трассы.
Помогите найти решение, каким образом можно найти координаты точки на маршруте, если знаешь расстояние в метрах от начала маршрута.
Решение:
ymaps.route(['Москва', 'Нижний Новгород']).then( function (route) { myMap.geoObjects.add(route); var way = route.getPaths().get(0); var segments = way.getSegments(); var targetDistance = 56800; var currentDistance = 0; var endPoint; for (var j = 0; j < segments.length; j++) { currentDistance += segments[j].getLength(); if(currentDistance > targetDistance) { currentDistance -= segments[j].getLength(); var coordinates = segments[j].getCoordinates(); for(var i = 0; i < coordinates.length - 1; i++) { var currentCoord = coordinates[i]; var nextCoord = coordinates[i + 1]; currentDistance += ymaps.coordSystem.geo.getDistance(currentCoord, nextCoord); if(currentDistance >= targetDistance) { var direction = [currentCoord[0] - nextCoord[0], currentCoord[1] - nextCoord[1]]; endPoint = ymaps.coordSystem.geo.solveDirectProblem(currentCoord, direction, currentDistance - targetDistance).endPoint; var myPlacemark = new ymaps.Placemark(endPoint, { hintContent: 'ДТП'}); myMap.geoObjects.add(myPlacemark); break; } } if(endPoint) { break; } } } }, function (error) { alert('Возникла ошибка: ' + error.message); } );