Редактор многоугольника

Open in CodeSandbox

Для многоугольников доступен визуальный редактор. Ссылка на редактор содержится в поле editor объекта-многоугольника.

<!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="polygonEditor.js" type="text/javascript"></script>
        <style>
            html,
            body {
                width: 100%;
                height: 95%;
                padding: 0;
                margin: 0;
                font-family: Arial;
            }

            #map {
                widht: 100%;
                height: 90%;
            }

            .header {
                padding: 5px;
            }
        </style>
    </head>
    <body>
        <p class="header">
            Кликните на карту, чтобы начать создание многоугольника
        </p>
        <div id="map"></div>
    </body>
</html>
ymaps.ready(init);

function init() {
    var myMap = new ymaps.Map(
        "map",
        {
            center: [55.73, 37.75],
            zoom: 10,
        },
        {
            searchControlProvider: "yandex#search",
        }
    );

    // Создаем многоугольник без вершин.
    var myPolygon = new ymaps.Polygon(
        [],
        {},
        {
            // Курсор в режиме добавления новых вершин.
            editorDrawingCursor: "crosshair",
            // Максимально допустимое количество вершин.
            editorMaxPoints: 5,
            // Цвет заливки.
            fillColor: "#00FF00",
            // Цвет обводки.
            strokeColor: "#0000FF",
            // Ширина обводки.
            strokeWidth: 5,
        }
    );
    // Добавляем многоугольник на карту.
    myMap.geoObjects.add(myPolygon);

    // В режиме добавления новых вершин меняем цвет обводки многоугольника.
    var stateMonitor = new ymaps.Monitor(myPolygon.editor.state);
    stateMonitor.add("drawing", function (newValue) {
        myPolygon.options.set(
            "strokeColor",
            newValue ? "#FF0000" : "#0000FF"
        );
    });

    // Включаем режим редактирования с возможностью добавления новых вершин.
    myPolygon.editor.startDrawing();
}