---
metadata:
  - name: generator
    content: Diplodoc Platform v5.37.1
alternate:
  - https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md
---
> **Documentation Index:** Fetch the complete configuration index at https://yandex.ru/dev/jsapi-v1-1/doc/ru/llms.txt

# YMaps.GraphicsEditingOptions

Опции режима редактирования графических объектов.

Данный класс не имеет конструктора. Экземпляры создаются как обычные объекты JavaScript.

**Пример:**

```javascript
// Пример создания объекта опций режима редактирования графических объектов.
var options = {
    maxPoints: Infinity,
    menuManager: function (index, menuItems) {
        for (var i = 0; i < menuItems.length; i++) {
            if (menuItems[i].id == YMaps.GraphicsEditingMenuIDs.Delete) {
                menuItems.splice(i, 1);
            }
        }
        return menuItems;
    },
    onDblClick: function (index) {
        // ...
    },
    stopDrawingByDblClick: false,
    drawing: true
};
```

## Поля

#|
|| **Имя** | **Описание** ||
||[dragging](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#dragging) | Разрешает перетаскивание геометрической фигуры в процессе редактирования.||
||[draggingCursor](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#draggingCursor) | Задает внешний вид курсора мыши над геометрической фигурой, в случае, если разрешено ее перетаскивание.||
||[drawing](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#drawing) | Включает режим добавления новых вершин в геометрическую фигуру.||
||[drawingCursor](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#drawingCursor) | Задает внешний вид курсора мыши в режиме добавления вершин геометрической фигуры.||
||[drawOver](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#drawOver) | Разрешает ставить точки поверх объектов карты в режиме добавления вершин геометрической фигуры.||
||[edgeLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#edgeLayout) | Класс макета для меток промежуточных вершин геометрической фигуры.||
||[lockedPoints](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#lockedPoints) | Массив точек геометрической фигуры, редактирование которых запрещено.||
||[maxPoints](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#maxPoints) | Максимально допустимое число вершин в геометрической фигуре.||
||[menuManager](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#menuManager) | Диспетчер контекстного меню, открывающегося при щелчке по вершине геометрической фигуры (ломаной, многоугольника, и т.п.).||
||[onDblClick](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#onDblClick) | Обработчик двойного щелчка по вершине геометрической фигуры (ломаной, многоугольника, и т.п.)||
||[onPointDragging](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#onPointDragging) | Обработчик, позволяющий корректировать действия пользователя при перетаскивании существующих вершин, а также при создании новых вершин, посредством перетаскивания промежуточных маркеров.||
||[onPointDrawing](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#onPointDrawing) | Обработчик позволяющий корректировать действия пользователя в режиме добавления новых вершин в геометрическую фигуру.

Вызывается в моменты движения и щелчка мышью. Соответственно позволяет корректировать координату схождения пунктирных линий и координату добавляемой по щелчку мыши вершины.

Должен возвращать откорректированную добавляемую точку в пикселах карты. Если обработчик ничего не возвращает, то соответствующее действие пользователя игнорируется.||
||[stopDrawingByDblClick](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#stopDrawingByDblClick) | Включает возможность выхода из режима добавления вершин по двойному щелчку мыши.||
||[vertexLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#vertexLayout) | Класс макета для меток вершин геометрической фигуры, редактирование которых разрешено.||
||[vertexLockedLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#vertexLockedLayout) | Класс макета для меток вершин геометрической фигуры, редактирование которых запрещено.||
||[visibilityZoomForNewPoints](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#visibilityZoomForNewPoints) | Задает коэффициент масштабирования карты, начиная с которого новые вершины, добавленные в процессе редактирования, должны отображаться в составе графической фигуры.||
|#

## Подробное описание полей {#field_detail}

### dragging {#dragging}

```javascript
Boolean dragging
```

Разрешает перетаскивание геометрической фигуры в процессе редактирования.

Точки, редактирование которых запрещено с помощью опции [YMaps.GraphicsEditingOptions.lockedPoints](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#lockedPoints), перетаскиваться не будут.

По умолчанию опция отключена.

### draggingCursor {#draggingCursor}

```javascript
YMaps.Cursor draggingCursor
```

Задает внешний вид курсора мыши над геометрической фигурой, в случае, если разрешено ее перетаскивание.

По умолчанию [YMaps.Cursor.MOVE](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/cursor.md#MOVE).

### drawing {#drawing}

```javascript
Boolean drawing
```

Включает режим добавления новых вершин в геометрическую фигуру.

В этом режиме новые вершины добавляются по щелчку мыши по карте. Выход из режима осуществляется по двойному щелчку, см. [YMaps.GraphicsEditingOptions.stopDrawingByDblClick](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/graphicseditingoptions.md#stopDrawingByDblClick).

По умолчанию режим отключен.

### drawingCursor {#drawingCursor}

```javascript
YMaps.Cursor drawingCursor
```

Задает внешний вид курсора мыши в режиме добавления вершин геометрической фигуры.

По умолчанию [YMaps.Cursor.ARROW](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/cursor.md#ARROW).

### drawOver {#drawOver}

```javascript
Boolean drawOver
```

Разрешает ставить точки поверх объектов карты в режиме добавления вершин геометрической фигуры.

По умолчанию опция отключена.

### edgeLayout {#edgeLayout}

```javascript
Function edgeLayout
```

Класс макета для меток промежуточных вершин геометрической фигуры.

Класс должен реализовывать интерфейс [YMaps.IEditorMarkerLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/ieditormarkerlayout.md).

**Пример:**

```javascript
polygon.setEditingOptions({
    edgeLayout: function () {
        var element = YMaps.jQuery("<div style='background:blue; height:12px; width:12px;'/>");

        this.onAddToParent = function (parentNode) {
            element.appendTo(parentNode);
        };

        this.onRemoveFromParent = function () {
            element.remove();
        };

        this.update = function () {};

        this.getSize = function () {
            return new YMaps.Point(12);
        };

        this.getOffset = function () {
            return new YMaps.Point(-6);
        };
    }
});
```

### lockedPoints {#lockedPoints}

```javascript
[YMaps.ICoordPoint] lockedPoints
```

Массив точек геометрической фигуры, редактирование которых запрещено.

По умолчанию опция не задана.

**Пример:**

```javascript
// Задание массива точек запрещенных для редактирования.
polyline.setEditingOptions({
    lockedPoints: [polyline.getPoint(1), polyline.getPoint(2)]
});
```

### maxPoints {#maxPoints}

```javascript
Integer maxPoints
```

Максимально допустимое число вершин в геометрической фигуре.

Значение по умолчанию: `Infinity`.

### menuManager {#menuManager}

```javascript
Function menuManager
```

Диспетчер контекстного меню, открывающегося при щелчке по вершине геометрической фигуры (ломаной, многоугольника, и т.п.).

Принимает три аргумента:

- индекс вершины геометрической фигуры;
- массив объектов, описывающих пункты контекстного меню для этой вершины;
- ссылку на объект контура фигуры [YMaps.CoordPath](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/coordpath.md), к которому относится вершина.

Диспетчер может изменять данные в переданном массиве.

Возвращает массив объектов, описывающих пункты контекстного меню.


{% note info %}

По умолчанию диспетчер контекстного меню не задан.

{% endnote %}


**Примеры:**

**1.**

```javascript
// Объект, описывающий отдельный пункт контекстного меню.
{
    // Идентификатор пункта меню.
    id: 'deleteAction',
    // Отображаемое название пункта меню.
    title: 'Удалить вершину',
    // Подсказка, всплывающая при наведении курсора мыши.
    // Для работоспособности браузерных подсказок в Firefox, необходимо для карты установить опцию propagateEvents = true.
    hint: 'Удаление вершины фигуры',
    // Обработчик щелчка по пункту меню.
    // Принимает три аргумента:
    // - ссылку на объект, представляющий фигуру;
    // - индекс выбранной вершины;
    // - ссылку на объект контура фигуры {@link YMaps.CoordPath}.
    onClick: function (graphicsObject, pointIndex, coordPath) {
        // Действия, выполняемые при щелчке по пункту меню.
    }
}
```

**2.**

```javascript
// Диспетчер контекстного меню.
this.polygonBlue.setEditingOptions({
    menuManager: function (index, menuItems) {
        for (var i = 0; i < menuItems.length; i++) {
            if (menuItems[i].id == YMaps.GraphicsEditingMenuIDs.StartDrawing) {
                menuItems[i].title = '<span style="white-space:nowrap;">Добавить точки</span>';
            }
        }
        menuItems.push({
            id: "ShowIndex",
            title: '<span style="white-space:nowrap;">Показать индекс</span>',
            onClick: function (polygon, pointIndex, coordPath) {
                alert(pointIndex);
            }
        });
        return menuItems;
    }
});
```

### onDblClick {#onDblClick}

```javascript
Function onDblClick
```

Обработчик двойного щелчка по вершине геометрической фигуры (ломаной, многоугольника, и т.п.)

Принимает три аргумента:

- - ссылку на фигуру;
- - индекс вершины;
- - ссылку на объект контура фигуры [YMaps.CoordPath](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/coordpath.md).

По умолчанию, обработчик определен функцией, удаляющей соответствующую вершину.

### onPointDragging {#onPointDragging}

```javascript
Function onPointDragging
```

Обработчик, позволяющий корректировать действия пользователя при перетаскивании существующих вершин, а также при создании новых вершин, посредством перетаскивания промежуточных маркеров.

Вызывается в момент перетаскивания маркера вершины или промежуточного маркера, а также в момент отпускания кнопки мыши. Соответственно позволяет корректировать координаты маркеров при перетаскивании и координаты добавляемых (или изменяемых) вершин фигуры.

Должен возвращать откорректированную добавляемую (или изменяемую) точку в пикселах карты. Если обработчик ничего не возвращает, то соответствующее действие пользователя игнорируется.

Принимает три аргумента:

- массив всех видимых точек контура геометрической фигуры в пикселах карты, включающий в себя добавляемую/редактируемую точку;
- индекс добавляемой/изменяемой точки в переданном массиве;
- флаг, сигнализирующий о том, что в данный момент происходит создание/изменение точки. false - в моменты перетаскивания маркеров, true - в момент отпускания кнопки мыши.

### onPointDrawing {#onPointDrawing}

```javascript
Function onPointDrawing
```

Обработчик позволяющий корректировать действия пользователя в режиме добавления новых вершин в геометрическую фигуру.

Вызывается в моменты движения и щелчка мышью. Соответственно позволяет корректировать координату схождения пунктирных линий и координату добавляемой по щелчку мыши вершины.

Должен возвращать откорректированную добавляемую точку в пикселах карты. Если обработчик ничего не возвращает, то соответствующее действие пользователя игнорируется.

Обработчик принимает три аргумента:

- массив всех видимых точек контура геометрической фигуры в пикселах карты, включающий в себя добавляемую точку;
- индекс добавляемой точки в переданном массиве.
- флаг, сигнализирующий о том, что в данный момент происходит добавление новой точки. false - при передвижении курсора мыши, true - в момент щелчка мышью.

### stopDrawingByDblClick {#stopDrawingByDblClick}

```javascript
Boolean stopDrawingByDblClick
```

Включает возможность выхода из режима добавления вершин по двойному щелчку мыши.

По умолчанию возможность включена.

### vertexLayout {#vertexLayout}

```javascript
Function vertexLayout
```

Класс макета для меток вершин геометрической фигуры, редактирование которых разрешено.

Класс должен реализовывать интерфейс [YMaps.IEditorMarkerLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/ieditormarkerlayout.md).

**Пример:**

```javascript
polygon.setEditingOptions({
    vertexLayout: function () {
        var element = YMaps.jQuery("<div style='background:green; height:16px; width:16px;'/>");

        this.onAddToParent = function (parentNode) {
            element.appendTo(parentNode);
        };

        this.onRemoveFromParent = function () {
            element.remove();
        };

        this.update = function () {};

        this.getSize = function () {
            return new YMaps.Point(16);
        };

        this.getOffset = function () {
            return new YMaps.Point(-8);
        };
    }
});
```

### vertexLockedLayout {#vertexLockedLayout}

```javascript
Function vertexLockedLayout
```

Класс макета для меток вершин геометрической фигуры, редактирование которых запрещено.

Класс должен реализовывать интерфейс [YMaps.IEditorMarkerLayout](https://yandex.ru/dev/jsapi-v1-1/doc/ru/ref/reference/ieditormarkerlayout.md).

**Пример:**

```javascript
polygon.setEditingOptions({
    vertexLockedLayout: function () {
        var element = YMaps.jQuery("<div style='background:#ccc; height:16px; width:16px;'/>");

        this.onAddToParent = function (parentNode) {
            element.appendTo(parentNode);
        };

        this.onRemoveFromParent = function () {
            element.remove();
        };

        this.update = function () {};

        this.getSize = function () {
            return new YMaps.Point(16);
        };

        this.getOffset = function () {
            return new YMaps.Point(-8);
        };
    }
});
```

### visibilityZoomForNewPoints {#visibilityZoomForNewPoints}

```javascript
Integer visibilityZoomForNewPoints
```

Задает коэффициент масштабирования карты, начиная с которого новые вершины, добавленные в процессе редактирования, должны отображаться в составе графической фигуры.

По умолчанию 0.
