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
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.