Множественная обводка

Open in CodeSandbox

Ломаная - это фигура, состоящая из набора последовательно соединённых вершин. Ломаная может иметь самопересечения.

Ломаные могут быть созданы двумя способами: с помощью класса GeoObject с указанием типа геометрии "Ломаная линия" либо с помощью вспомогательного класса Polyline.

При создании ломаной ей могут быть заданы свойства (например содержимое балуна или хинта) и опции (например: цвет, толщину).

Ломаные, наряду с другими геообъектами, можно объединять в коллекции.

<!DOCTYPE html>
<html>
    <head>
        <title>Множественная обводка</title>
        <meta
            http-equiv="Content-Type"
            content="text/html; charset=utf-8"
        />
        <!--
        Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
        Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
    -->
        <script
            src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&amp;apikey=<ваш API-ключ>"
            type="text/javascript"
        ></script>
        <script src="multystroke.js" type="text/javascript"></script>
        <style>
            html,
            body,
            #map {
                width: 100%;
                height: 100%;
                padding: 0;
                margin: 0;
            }
        </style>
    </head>
    <body>
        <div id="map"></div>
    </body>
</html>
ymaps.ready(init);

function init() {
    // Создаем карту.
    var myMap = new ymaps.Map(
        "map",
        {
            center: [55.72, 37.44],
            zoom: 10,
        },
        {
            searchControlProvider: "yandex#search",
        }
    );

    // Создаем ломаную, используя класс GeoObject.
    var myGeoObject = new ymaps.GeoObject(
        {
            // Описываем геометрию геообъекта.
            geometry: {
                // Тип геометрии - "Ломаная линия".
                type: "LineString",
                // Указываем координаты вершин ломаной.
                coordinates: [
                    [55.8, 37.5],
                    [55.7, 37.4],
                ],
            },
            // Описываем свойства геообъекта.
            properties: {
                // Содержимое хинта.
                hintContent: "Я геообъект",
                // Содержимое балуна.
                balloonContent: "Меня можно перетащить",
            },
        },
        {
            // Задаем опции геообъекта.
            // Включаем возможность перетаскивания ломаной.
            draggable: true,
            // Цвет линии - два значения
            strokeColor: ["#000", "#FFFF00"],
            // Ширина линии - два значения
            strokeWidth: [8, 5],
        }
    );

    // Создаем ломаную с помощью вспомогательного класса Polyline.
    var myPolyline = new ymaps.Polyline(
        [
            // Указываем координаты вершин ломаной.
            [55.8, 37.5],
            [55.8, 37.4],
            [55.7, 37.5],
            [55.7, 37.4],
        ],
        {
            // Описываем свойства геообъекта.
            // Содержимое балуна.
            balloonContent: "Ломаная линия",
        },
        {
            // Задаем опции геообъекта.
            // Отключаем кнопку закрытия балуна.
            balloonCloseButton: false,
            // Цвет линии - черная, белая и красная
            strokeColor: ["#000000", "#FFF", "#F00"],
            // Ширина линии.
            strokeWidth: [9, 8, 1],
            // Для третьей обводки задаем стиль
            strokeStyle: [0, 0, "dash"],
        }
    );

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