geometryEditor.Polygon
Расширяет IGeometryEditor.
Редактор геометрии "Многоугольник".
Конструктор | Поля | События | Методы
Конструктор
Параметры:
Параметр | Значение по умолчанию | Описание |
---|---|---|
geometry * | — | Тип: IPolygonGeometry Геометрия "Многоугольник". |
options | — | Тип: Object Опции редактора геометрии. Через опции редактора геометрии можно задавать как опции самого
редактора, так и опции его составных частей:
|
options.dblClickHandler | — | Тип: Function Обработчик двойного щелчка по вершине. Принимает ссылку на модель редактируемой вершины. По умолчанию, обработчик определен функцией, удаляющей соответствующую вершину. |
options.drawingCursor | "arrow" | Тип: Boolean Курсор мыши в режиме добавления новых вершин. |
options.drawOver | true | Тип: Boolean Разрешает ставить точки поверх объектов карты в режиме добавления новых вершин. |
options.edgeLayout | — | Тип: Function Класс макета для промежуточных меток. |
options.maxPoints | Infinity | Тип: Number Максимально допустимое число вершин в многоугольнике. |
options.menuManager | — | Тип: Function Диспетчер контекстного меню, открывающегося при щелчке по вершине.
Принимает два аргумента:
|
options.vertexLayout | — | Тип: Function Класс макета для меток на вершинах многоугольника. |
Параметр | Значение по умолчанию | Описание |
---|---|---|
geometry * | — | Тип: IPolygonGeometry Геометрия "Многоугольник". |
options | — | Тип: Object Опции редактора геометрии. Через опции редактора геометрии можно задавать как опции самого
редактора, так и опции его составных частей:
|
options.dblClickHandler | — | Тип: Function Обработчик двойного щелчка по вершине. Принимает ссылку на модель редактируемой вершины. По умолчанию, обработчик определен функцией, удаляющей соответствующую вершину. |
options.drawingCursor | "arrow" | Тип: Boolean Курсор мыши в режиме добавления новых вершин. |
options.drawOver | true | Тип: Boolean Разрешает ставить точки поверх объектов карты в режиме добавления новых вершин. |
options.edgeLayout | — | Тип: Function Класс макета для промежуточных меток. |
options.maxPoints | Infinity | Тип: Number Максимально допустимое число вершин в многоугольнике. |
options.menuManager | — | Тип: Function Диспетчер контекстного меню, открывающегося при щелчке по вершине.
Принимает два аргумента:
|
options.vertexLayout | — | Тип: Function Класс макета для меток на вершинах многоугольника. |
* Обязательный параметр/опция.
Поля
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
geometry | IGeometry | Редактируемая геометрия. Унаследовано от IGeometryEditor. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | IDataManager | Менеджер состояния редактора геометрии. Поля данных, доступные посредством методов get и set:
|
Имя | Тип | Описание |
---|---|---|
events | IEventManager | Менеджер событий. Унаследовано от IEventEmitter. |
geometry | IGeometry | Редактируемая геометрия. Унаследовано от IGeometryEditor. |
options | IOptionManager | Менеджер опций. Унаследовано от ICustomizable. |
state | IDataManager | Менеджер состояния редактора геометрии. Поля данных, доступные посредством методов get и set:
|
События
Имя | Описание |
---|---|
beforeedgedrag | Событие, предшествующее событию edgedrag.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforeedgedragstart | Событие, предшествующее событию edgedragstart.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexadd | Событие, предшествующее событию vertexadd.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdrag | Событие, предшествующее событию vertexdrag.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdragstart | Событие, предшествующее событию vertexdragstart.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdraw | Событие, предшествующее событию vertexdraw.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
edgedrag | Перетаскивание промежуточной метки.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
edgedragend | Завершение перетаскивания промежуточной метки. Экземпляр класса Event. |
edgedragstart | |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
statechange | Изменение состояния редактора геометрии. Экземпляр класса Event. Унаследовано от IGeometryEditor. |
vertexadd | Добавление новой вершины.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
vertexdrag | Перетаскивание вершины.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
vertexdragend | Завершение перетаскивания вершины. Экземпляр класса Event. |
vertexdragstart | |
vertexdraw | Рисование новой вершины. Данное событие, как правило, предшествует событию добавления вершины и возникает в момент
движения мышью при включенном режиме добавления новых вершин.
На основе данных, передаваемых в данном событии, отображаются направляющие линии в режиме добавления новых вершин.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
Имя | Описание |
---|---|
beforeedgedrag | Событие, предшествующее событию edgedrag.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforeedgedragstart | Событие, предшествующее событию edgedragstart.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexadd | Событие, предшествующее событию vertexadd.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdrag | Событие, предшествующее событию vertexdrag.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdragstart | Событие, предшествующее событию vertexdragstart.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
beforevertexdraw | Событие, предшествующее событию vertexdraw.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
edgedrag | Перетаскивание промежуточной метки.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
edgedragend | Завершение перетаскивания промежуточной метки. Экземпляр класса Event. |
edgedragstart | |
optionschange | Изменение в опциях объекта. Унаследовано от ICustomizable. |
statechange | Изменение состояния редактора геометрии. Экземпляр класса Event. Унаследовано от IGeometryEditor. |
vertexadd | Добавление новой вершины.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
vertexdrag | Перетаскивание вершины.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
vertexdragend | Завершение перетаскивания вершины. Экземпляр класса Event. |
vertexdragstart | |
vertexdraw | Рисование новой вершины. Данное событие, как правило, предшествует событию добавления вершины и возникает в момент
движения мышью при включенном режиме добавления новых вершин.
На основе данных, передаваемых в данном событии, отображаются направляющие линии в режиме добавления новых вершин.
Экземпляр класса Event.
Имена полей, доступных через метод Event.get:
|
Методы
Имя | Возвращает | Описание |
---|---|---|
getModel() | Returns ссылку на модель данных редактора. | |
getView() | Returns ссылку на объект отображения редактора. | |
startDrawing() | Включает режим добавления новых вершин в многоугольник. | |
startEditing() | Включает режим редактирования. Унаследован от IGeometryEditor. | |
stopDrawing() | Отключает режим добавления новых вершин в многоугольник. | |
stopEditing() | Отключает режим редактирования. Унаследован от IGeometryEditor. |
Имя | Возвращает | Описание |
---|---|---|
getModel() | Returns ссылку на модель данных редактора. | |
getView() | Returns ссылку на объект отображения редактора. | |
startDrawing() | Включает режим добавления новых вершин в многоугольник. | |
startEditing() | Включает режим редактирования. Унаследован от IGeometryEditor. | |
stopDrawing() | Отключает режим добавления новых вершин в многоугольник. | |
stopEditing() | Отключает режим редактирования. Унаследован от IGeometryEditor. |
Описание полей
state
{IDataManager} state
Менеджер состояния редактора геометрии.
Поля данных, доступные посредством методов get и set:
- editing - определяет включен ли редактор. Тип - Boolean. Значение по умолчанию - false.
- drawing - определяет включен ли режим добавления новых вершин. Тип - Boolean. Значение по умолчанию - false.
- drawingFrom - определяет то, как добавляются новые точки в режиме добавления. Может принимать одно из двух строковых значений: "begin" - точки добавляются в начало многоугольника, "end"- точки добавляются в конец.
- drawingFromIndex - индекс вершины многоугольника, после которой будут добавляться новые точки в режиме добавления. Данное поле доступно только на запись, т.к. факт записи приводит к изменению порядка вершин в многоугольнике, так чтобы точка с заданным индексом стала последней по счету. Тип - целое число.
- drawingPath - индекс контура многоугольника, в который добавляются новые точки в режиме добавления. Тип - целое число. Значение по умолчанию - 0.
Описание событий
beforeedgedrag
- pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
- setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
beforeedgedragstart
- domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
beforevertexadd
- parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
- vertexIndex - индекс добавляемой вершины;
- globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
- setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
Примеры:
1.
// Запрещаем добавлять новые вершины на расстоянии более 100 пикселей от центра карты.
polygon.editor.events.add("beforevertexadd", function (event) {
var mapGlobalPixelCenter = geoMap.getGlobalPixelCenter(),
globalPixels = event.get("globalPixels"),
vector = [mapGlobalPixelCenter[0] - globalPixels[0], mapGlobalPixelCenter[1] - globalPixels[1]],
vectorLength = Math.sqrt(vector[0] * vector[0] + vector[1] * vector[1]);
if (vectorLength > 100) {
event.preventDefault();
}
});
2.
// Корректируем координаты событий добавления вершин так, чтобы они не выходили за границы квадрата со стороной
// 100 пикселей и центром, совпадающим с центром карты.
polygon.editor.events.add(["beforevertexdraw", "beforevertexadd"], function (event) {
var mapGlobalPixelCenter = geoMap.getGlobalPixelCenter(),
globalPixels = event.get("globalPixels"),
pixelBounds = [
[mapGlobalPixelCenter[0] - 100, mapGlobalPixelCenter[1] - 100],
[mapGlobalPixelCenter[0] + 100, mapGlobalPixelCenter[1] + 100]
];
event.callMethod("setGlobalPixels", [
Math.max(Math.min(globalPixels[0], pixelBounds[1][0]), pixelBounds[0][0]),
Math.max(Math.min(globalPixels[1], pixelBounds[1][1]), pixelBounds[0][1])
]);
});
beforevertexdrag
- pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
- setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
beforevertexdragstart
- domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
Пример:
// Запрещаем перетаскивание вершины с индексом 0 в контуре с тем же индексом.
polygon.editor.events.add("beforevertexdragstart", function (event) {
var vertexModel = event.get("target").properties.get("vertexModel"),
pathModel = vertexModel.getParent();
if (pathModel.getIndex() == 0 && vertexModel.getIndex() == 0) {
event.preventDefault();
}
});
beforevertexdraw
- parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
- vertexIndex - индекс добавляемой вершины;
- globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
- setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
edgedrag
- pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
edgedragend
Завершение перетаскивания промежуточной метки. Экземпляр класса Event.
edgedragstart
vertexadd
- parentModel - ссылка на родительскую, для добавленной вершины, модель данных;
- vertexIndex - индекс добавленной вершины;
- globalPixels - координаты добавленной вершины в глобальных пиксельных координатах.
vertexdrag
- pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
vertexdragend
Завершение перетаскивания вершины. Экземпляр класса Event.
vertexdragstart
vertexdraw
- parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
- vertexIndex - индекс добавляемой вершины;
- globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
Описание методов
getModel
{geometryEditor.model.RootPolygon} getModel()
Returns ссылку на модель данных редактора.
getView
{geometryEditor.view.MultiPath} getView()
Returns ссылку на объект отображения редактора.
startDrawing
{} startDrawing()
Включает режим добавления новых вершин в многоугольник.
stopDrawing
{} stopDrawing()
Отключает режим добавления новых вершин в многоугольник.