---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/en/v2-1/examples/cases/multiroute_view_options.md
  - https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/v2-1/examples/cases/multiroute_view_options.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.com.tr/dev/jsapi-v2-1/doc/ru/llms.txt

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

<iframe id="LIVE-EXAMPLE" style="width:100%;height: 400px;border-radius: 8px;border: 1px solid rgba(92, 94, 102, 0.14);" frameBorder="0" src="https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/examples/2/out/s3-cases/ru/multiroute_view_options/index.html" allow="fullscreen"></iframe>

<a target="_blank" rel="noopener noreferrer" style="display: inline-block;margin-top: 10px;cursor: pointer;border-radius: 4px;padding: 9px 12px;background: #151515;color: white;text-decoration: none;font-weight: 500" href="https://codesandbox.io/p/sandbox/2thzsn?file=index.html">Open in CodeSandbox</a>

<div id="references">
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/multiRouter.MultiRoute">multiRouter.MultiRoute</a>,
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/multiRouter.MultiRouteModel">multiRouter.MultiRouteModel</a>,
    <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/control.Button">control.Button</a>
</div>
<p>
    Правила отображения маршрутов задаются в опциях маршрутизатора.
</p>
<p>
    Для задания опций составных частей мультимаршрута доступны следующие префиксы:

    <ul>
        <li>wayPoint - опции отображений путевых точек;</li>
        <li>wayPointStart - опции отображения начальной путевой точки;</li>
        <li>wayPointFinish - опции отображения конечной путевой точки;</li>
        <li>viaPoint - опции отображений транзитных точек;</li>
        <li>pin - опции отображений точечных маркеров в путевых точках;</li>
        <li>route - опции отображений маршрутов;</li>
        <li>routeActive - опции отображения активного маршрута;</li>
        <li>routePedestrianSegment - опции линий сегментов пешеходного маршрута;</li>
        <li>editor - опции редактора мультимаршрута (см. <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/multiRouter.Editor">multiRouter.Editor</a>).</li>
    </ul>

</p>
В данном примере на карту добавляется два маршрута с разными опциями отображения. Как можно задать
два разных отображения для маршрутов, имеющих общую модель, см. в <a href="https://yandex.ru/dev/jsapi-v2-1/doc/ru/v2-1/ref/reference/multiRouter.MultiRouteModel#constructor-summary">справочнике</a>.

{% list tabs %}

-   index.html

    ```html
    <!DOCTYPE html>

    <html>
        <head>
            <title>Настройка отображения мультимаршрута</title>
            <meta
                http-equiv="Content-Type"
                content="text/html; charset=utf-8"
            />
            <!--
            Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
            Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
        -->
            
            
            
        </head>

        <body>
            <div id="map"></div>
        </body>
    </html>
    ```

-   multiroute_view_options.js

    ```js
    function init() {
        // Объявляем набор опорных точек и массив индексов транзитных точек.
        var referencePoints = [
                "Москва, Ленинский проспект",
                "Москва, Льва Толстого, 16",
                "Москва, Кремлевская набережная",
                "Москва, парк Сокольники",
            ],
            viaIndexes = [2];

        // Создаем мультимаршрут и настраиваем его внешний вид с помощью опций.
        var multiRoute = new ymaps.multiRouter.MultiRoute(
            {
                referencePoints: referencePoints,
                params: { viaIndexes: viaIndexes },
            },
            {
                // Внешний вид путевых точек.
                wayPointStartIconColor: "#333",
                wayPointStartIconFillColor: "#B3B3B3",
                // Задаем собственную картинку для последней путевой точки.
                wayPointFinishIconLayout: "default#image",
                wayPointFinishIconImageHref: "leaf.svg",
                wayPointFinishIconImageSize: [30, 30],
                wayPointFinishIconImageOffset: [-15, -15],
                // Позволяет скрыть иконки путевых точек маршрута.
                // wayPointVisible:false,

                // Внешний вид транзитных точек.
                viaPointIconRadius: 7,
                viaPointIconFillColor: "#000088",
                viaPointActiveIconFillColor: "#E63E92",
                // Транзитные точки можно перетаскивать, при этом
                // маршрут будет перестраиваться.
                viaPointDraggable: true,
                // Позволяет скрыть иконки транзитных точек маршрута.
                // viaPointVisible:false,

                // Внешний вид точечных маркеров под путевыми точками.
                pinIconFillColor: "#000088",
                pinActiveIconFillColor: "#B3B3B3",
                // Позволяет скрыть точечные маркеры путевых точек.
                // pinVisible:false,

                // Внешний вид линии маршрута.
                routeStrokeWidth: 2,
                routeStrokeColor: "#000088",
                routeActiveStrokeWidth: 6,
                routeActiveStrokeColor: "#E63E92",

                // Внешний вид линии пешеходного маршрута.
                routeActivePedestrianSegmentStrokeStyle: "solid",
                routeActivePedestrianSegmentStrokeColor: "#00CDCD",

                // Автоматически устанавливать границы карты так, чтобы маршрут был виден целиком.
                boundsAutoApply: true,
            }
        );

        // Настраиваем внешний вид второй точки через прямой доступ к ней.
        customizeSecondPoint();

        // Создаем кнопки.
        var removePointsButton = new ymaps.control.Button({
                data: { content: "Удалить промежуточные точки" },
                options: { selectOnClick: true },
            }),
            routingModeButton = new ymaps.control.Button({
                data: { content: "Пешком" },
                options: { selectOnClick: true },
            });

        // Объявляем обработчики для кнопок.
        removePointsButton.events.add("select", function () {
            multiRoute.model.setReferencePoints(
                [
                    referencePoints[0],
                    referencePoints[referencePoints.length - 1],
                ],
                []
            );
        });

        removePointsButton.events.add("deselect", function () {
            multiRoute.model.setReferencePoints(referencePoints, viaIndexes);
            // Т.к. вторая точка была удалена, нужно заново ее настроить.
            customizeSecondPoint();
        });

        routingModeButton.events.add("select", function () {
            multiRoute.model.setParams({ routingMode: "pedestrian" }, true);
        });

        routingModeButton.events.add("deselect", function () {
            multiRoute.model.setParams({ routingMode: "auto" }, true);
        });

        // Функция настройки внешнего вида второй точки.
        function customizeSecondPoint() {
            /**
             * Ждем, пока будут загружены данные мультимаршрута и созданы отображения путевых точек.
             * @see https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/multiRouter.MultiRouteModel-docpage/#event-requestsuccess
             */
            multiRoute.model.events.once("requestsuccess", function () {
                var yandexWayPoint = multiRoute.getWayPoints().get(1);
                // Создаем балун у метки второй точки.
                ymaps.geoObject.addon.balloon.get(yandexWayPoint);
                yandexWayPoint.options.set({
                    preset: "islands#grayStretchyIcon",
                    iconContentLayout: ymaps.templateLayoutFactory.createClass(
                        '<span style="color: red;">Я</span>ндекс'
                    ),
                    balloonContentLayout:
                        ymaps.templateLayoutFactory.createClass(
                            "{{ properties.address|raw }}"
                        ),
                });
            });
        }

        // Создаем карту с добавленной на нее кнопкой.
        var myMap = new ymaps.Map(
            "map",
            {
                center: [55.739625, 37.5412],
                zoom: 7,
                controls: [removePointsButton, routingModeButton],
            },
            {
                buttonMaxWidth: 300,
            }
        );

        // Добавляем мультимаршрут на карту.
        myMap.geoObjects.add(multiRoute);
    }

    ymaps.ready(init);
    ```

{% endlist %}
