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

Настройка отображения мультимаршрута

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

Правила отображения маршрутов задаются в опциях маршрутизатора.

Для задания опций составных частей мультимаршрута доступны следующие префиксы:

  • wayPoint - опции отображений путевых точек;
  • wayPointStart - опции отображения начальной путевой точки;
  • wayPointFinish - опции отображения конечной путевой точки;
  • viaPoint - опции отображений транзитных точек;
  • pin - опции отображений точечных маркеров в путевых точках;
  • route - опции отображений маршрутов;
  • routeActive - опции отображения активного маршрута;
  • routePedestrianSegment - опции линий сегментов пешеходного маршрута;
  • editor - опции редактора мультимаршрута (см. multiRouter.Editor).

В данном примере на карту добавляется два маршрута с разными опциями отображения. Как можно задать два разных отображения для маршрутов, имеющих общую модель, см. в справочнике.
\n\n\n","multiroute_view_options.js":"function init() {\n // Объявляем набор опорных точек и массив индексов транзитных точек.\n var referencePoints = [\n \"Москва, Ленинский проспект\",\n \"Москва, Льва Толстого, 16\",\n \"Москва, Кремлевская набережная\",\n \"Москва, парк Сокольники\"\n ],\n viaIndexes = [2];\n\n // Создаем мультимаршрут и настраиваем его внешний вид с помощью опций.\n var multiRoute = new ymaps.multiRouter.MultiRoute({\n referencePoints: referencePoints,\n params: {viaIndexes: viaIndexes}\n }, {\n // Внешний вид путевых точек.\n wayPointStartIconColor: \"#333\",\n wayPointStartIconFillColor: \"#B3B3B3\",\n // Задаем собственную картинку для последней путевой точки.\n wayPointFinishIconLayout: \"default#image\",\n wayPointFinishIconImageHref: \"images/sokolniki.png\",\n wayPointFinishIconImageSize: [30, 30],\n wayPointFinishIconImageOffset: [-15, -15],\n // Позволяет скрыть иконки путевых точек маршрута.\n // wayPointVisible:false,\n\n // Внешний вид транзитных точек.\n viaPointIconRadius: 7,\n viaPointIconFillColor: \"#000088\",\n viaPointActiveIconFillColor: \"#E63E92\",\n // Транзитные точки можно перетаскивать, при этом\n // маршрут будет перестраиваться.\n viaPointDraggable: true,\n // Позволяет скрыть иконки транзитных точек маршрута.\n // viaPointVisible:false,\n\n // Внешний вид точечных маркеров под путевыми точками.\n pinIconFillColor: \"#000088\",\n pinActiveIconFillColor: \"#B3B3B3\",\n // Позволяет скрыть точечные маркеры путевых точек.\n // pinVisible:false,\n\n // Внешний вид линии маршрута.\n routeStrokeWidth: 2,\n routeStrokeColor: \"#000088\",\n routeActiveStrokeWidth: 6,\n routeActiveStrokeColor: \"#E63E92\",\n\n // Внешний вид линии пешеходного маршрута.\n routeActivePedestrianSegmentStrokeStyle: \"solid\",\n routeActivePedestrianSegmentStrokeColor: \"#00CDCD\",\n\n // Автоматически устанавливать границы карты так, чтобы маршрут был виден целиком.\n boundsAutoApply: true\n });\n\n // Настраиваем внешний вид второй точки через прямой доступ к ней.\n customizeSecondPoint();\n\n // Создаем кнопки.\n var removePointsButton = new ymaps.control.Button({\n data: {content: \"Удалить промежуточные точки\"},\n options: {selectOnClick: true}\n }),\n routingModeButton = new ymaps.control.Button({\n data: {content: \"Пешком\"},\n options: {selectOnClick: true}\n });\n\n // Объявляем обработчики для кнопок.\n removePointsButton.events.add('select', function () {\n multiRoute.model.setReferencePoints([\n referencePoints[0],\n referencePoints[referencePoints.length - 1]\n ], []);\n });\n\n removePointsButton.events.add('deselect', function () {\n multiRoute.model.setReferencePoints(referencePoints, viaIndexes);\n // Т.к. вторая точка была удалена, нужно заново ее настроить.\n customizeSecondPoint();\n });\n\n routingModeButton.events.add('select', function () {\n multiRoute.model.setParams({routingMode: 'pedestrian'}, true);\n });\n\n routingModeButton.events.add('deselect', function () {\n multiRoute.model.setParams({routingMode: 'auto'}, true);\n });\n\n // Функция настройки внешнего вида второй точки.\n function customizeSecondPoint() {\n /**\n * Ждем, пока будут загружены данные мультимаршрута и созданы отображения путевых точек.\n * @see https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRouteModel-docpage/#event-requestsuccess\n */\n multiRoute.model.events.once(\"requestsuccess\", function () {\n var yandexWayPoint = multiRoute.getWayPoints().get(1);\n // Создаем балун у метки второй точки.\n ymaps.geoObject.addon.balloon.get(yandexWayPoint);\n yandexWayPoint.options.set({\n preset: \"islands#grayStretchyIcon\",\n iconContentLayout: ymaps.templateLayoutFactory.createClass(\n 'Яндекс'\n ),\n balloonContentLayout: ymaps.templateLayoutFactory.createClass(\n '{{ properties.address|raw }}'\n )\n });\n });\n }\n\n // Создаем карту с добавленной на нее кнопкой.\n var myMap = new ymaps.Map('map', {\n center: [55.739625, 37.54120],\n zoom: 7,\n controls: [removePointsButton, routingModeButton]\n }, {\n buttonMaxWidth: 300\n });\n\n // Добавляем мультимаршрут на карту.\n myMap.geoObjects.add(multiRoute);\n}\n\nymaps.ready(init);\n"},"resources":["images/sokolniki.png"],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/multiroute_view_options/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)