YMaps.GraphicsEditingOptions

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

Данный класс не имеет конструктора. Экземпляры создаются как обычные объекты 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

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

draggingCursor

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

drawing

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

drawingCursor

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

drawOver

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

edgeLayout

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

lockedPoints

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

maxPoints

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

menuManager

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

onDblClick

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

onPointDragging

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

onPointDrawing

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

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

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

stopDrawingByDblClick

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

vertexLayout

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

vertexLockedLayout

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

visibilityZoomForNewPoints

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

Подробное описание полей

dragging

Boolean dragging

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

Точки, редактирование которых запрещено с помощью опции YMaps.GraphicsEditingOptions.lockedPoints, перетаскиваться не будут.

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

draggingCursor

YMaps.Cursor draggingCursor

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

По умолчанию YMaps.Cursor.MOVE.

drawing

Boolean drawing

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

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

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

drawingCursor

YMaps.Cursor drawingCursor

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

По умолчанию YMaps.Cursor.ARROW.

drawOver

Boolean drawOver

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

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

edgeLayout

Function edgeLayout

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

Класс должен реализовывать интерфейс YMaps.IEditorMarkerLayout.

Пример:

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

[YMaps.ICoordPoint] lockedPoints

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

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

Пример:

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

maxPoints

Integer maxPoints

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

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

menuManager

Function menuManager

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

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

  • индекс вершины геометрической фигуры;
  • массив объектов, описывающих пункты контекстного меню для этой вершины;
  • ссылку на объект контура фигуры YMaps.CoordPath, к которому относится вершина.

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

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

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

Примеры:

1.

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

2.

// Диспетчер контекстного меню.
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

Function onDblClick

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

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

  • - ссылку на фигуру;
  • - индекс вершины;
  • - ссылку на объект контура фигуры YMaps.CoordPath.

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

onPointDragging

Function onPointDragging

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

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

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

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

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

onPointDrawing

Function onPointDrawing

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

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

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

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

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

stopDrawingByDblClick

Boolean stopDrawingByDblClick

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

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

vertexLayout

Function vertexLayout

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

Класс должен реализовывать интерфейс YMaps.IEditorMarkerLayout.

Пример:

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

Function vertexLockedLayout

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

Класс должен реализовывать интерфейс YMaps.IEditorMarkerLayout.

Пример:

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

Integer visibilityZoomForNewPoints

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

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