Версия:
Популярные примеры
Карта
Геообъекты
Балун и хинт
Элементы управления
Активные области
Кластеризация
GeoQuery
Поведения и события
Поиск по карте
Пробки
Местоположение пользователя
Маршрутизация
YMapsML
GeoXML
ObjectManager
Модульная система
Панорамы
Внешние модули

Получение сегментов маршрута

Сохранить как файлыЭкспорт на JSFiddle

Для построения маршрута предназначена функция route. В эту функцию передается массив точек, через которые нужно проложить маршрут и, при необходимости, дополнительные опции его построения.

Вычисление маршрута производится асинхронно (то есть во время выполнения функции route производится обмен данными с сервером). Результат передается в функцию-обработчик в виде коллекции GeoObjectCollection, которую можно разместить на карте.

\n\n\n\n","router.js":"ymaps.ready(init);\n\nfunction init() {\n var myMap = new ymaps.Map(\"map\", {\n center: [55.745508, 37.435225],\n zoom: 13\n }, {\n searchControlProvider: 'yandex#search'\n });\n\n // Добавим на карту схему проезда\n // от улицы Крылатские холмы до станции метро \"Кунцевская\"\n // через станцию \"Молодежная\" и затем до станции \"Пионерская\".\n // Точки маршрута можно задавать 3 способами:\n // как строка, как объект или как массив геокоординат.\n ymaps.route([\n 'Москва, улица Крылатские холмы',\n {\n point: 'Москва, метро Молодежная',\n // метро \"Молодежная\" - транзитная точка\n // (проезжать через эту точку, но не останавливаться в ней).\n type: 'viaPoint'\n },\n [55.731272, 37.447198], // метро \"Кунцевская\".\n 'Москва, метро Пионерская'\n ]).then(function (route) {\n myMap.geoObjects.add(route);\n // Зададим содержание иконок начальной и конечной точкам маршрута.\n // С помощью метода getWayPoints() получаем массив точек маршрута.\n // Массив транзитных точек маршрута можно получить с помощью метода getViaPoints.\n var points = route.getWayPoints(),\n lastPoint = points.getLength() - 1;\n // Задаем стиль метки - иконки будут красного цвета, и\n // их изображения будут растягиваться под контент.\n points.options.set('preset', 'islands#redStretchyIcon');\n // Задаем контент меток в начальной и конечной точках.\n points.get(0).properties.set('iconContent', 'Точка отправления');\n points.get(lastPoint).properties.set('iconContent', 'Точка прибытия');\n\n // Проанализируем маршрут по сегментам.\n // Сегмент - участок маршрута, который нужно проехать до следующего\n // изменения направления движения.\n // Для того, чтобы получить сегменты маршрута, сначала необходимо получить\n // отдельно каждый путь маршрута.\n // Весь маршрут делится на два пути:\n // 1) от улицы Крылатские холмы до станции \"Кунцевская\";\n // 2) от станции \"Кунцевская\" до \"Пионерская\".\n\n var moveList = 'Трогаемся,
',\n way,\n segments;\n // Получаем массив путей.\n for (var i = 0; i < route.getPaths().getLength(); i++) {\n way = route.getPaths().get(i);\n segments = way.getSegments();\n for (var j = 0; j < segments.length; j++) {\n var street = segments[j].getStreet();\n moveList += ('Едем ' + segments[j].getHumanAction() + (street ? ' на ' + street : '') + ', проезжаем ' + segments[j].getLength() + ' м.,');\n moveList += '
'\n }\n }\n moveList += 'Останавливаемся.';\n // Выводим маршрутный лист.\n $('#list').append(moveList);\n }, function (error) {\n alert('Возникла ошибка: ' + error.message);\n });\n}"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/router/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)