Как я могу отобразить передвижение маркера по маршруту, построенному с использованием API Яндекс карт?
Для небольшого университетского проекта я пытаюсь сделать анимацию передвижения маркера вдоль построенного маршрута. (Не собираюсь использовать API для трекинга). На данный момент мне удалось построить маршрут между двумя заданными точками вдоль дорог на карте, но при попытке добавить маркер и сделать ему анимацию передвижения вдоль маршрута - ничего не происходит, при этом на карте не отображается и сам маркер. Возможно есть ошибки в коде.
Вот такой код на JS, который позволяет построить маршрут и, по идее, должен отображать маркер, который двигается по точкам маршрута с интервалом в 1 секунду.
var myMap = new ymaps.Map('map', {
center: [55.753994, 37.622093],
zoom: 9,
// Добавим панель маршрутизации.
controls: ['routePanelControl']
});
var control = myMap.controls.get('routePanelControl');
// Зададим состояние панели для построения маршрутов.
control.routePanel.state.set({
// Тип маршрутизации.
type: 'masstransit',
// Выключим возможность задавать пункт отправления в поле ввода.
fromEnabled: true,
// Адрес или координаты пункта отправления.
from: 'Москва, Льва Толстого 16',
// Включим возможность задавать пункт назначения в поле ввода.
toEnabled: true
// Адрес или координаты пункта назначения.
//to: 'Петербург'
});
// Зададим опции панели для построения маршрутов.
control.routePanel.options.set({
// Запрещаем показ кнопки, позволяющей менять местами начальную и конечную точки маршрута.
allowSwitch: false,
// Включим определение адреса по координатам клика.
// Адрес будет автоматически подставляться в поле ввода на панели, а также в подпись метки маршрута.
reverseGeocoding: true,
// Зададим виды маршрутизации, которые будут доступны пользователям для выбора.
types: { masstransit: true, pedestrian: true, taxi: true }
});
control.routePanel.getRouteAsync().then(function (route) {
// Получаем все точки маршрута
var wayPoints = route.getWayPoints();
// Получаем координаты всех точек маршрута и сохраняем их в массив
var routePoints = [];
wayPoints.each(function (point) {
routePoints.push(point.geometry.getCoordinates());
});
// Создаем маркер на карте
var marker = new ymaps.Placemark(routePoints[0], {
iconContent: 'Машинка',
}, {
preset: 'islands#blueAutoIcon',
});
myMap.geoObjects.add(marker);
// Запускаем перемещение маркера по маршруту с интервалом в 1 секунду
moveMarkerAlongRoute(routePoints, marker, 1000);
});
});```
Источник: Stack Overflow на русском