geometryEditor.LineString

Расширяет IGeometryEditor.

Редактор геометрии "Ломаная линия".

Конструктор | Поля | События | Методы

Конструктор

geometryEditor.LineString(geometry[, options])

Параметры:

Параметр Значение по умолчанию Описание
geometry *

Тип: ILineStringGeometry

Геометрия "Ломаная линия".

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:

  • editing - определяет включен ли редактор. Тип - Boolean. Значение по умолчанию - false.
  • drawing - определяет включен ли режим добавления новых вершин. Тип - Boolean. Значение по умолчанию - false.
  • drawingFrom - определяет то, как добавляются новые точки в режиме добавления. Может принимать одно из двух строковых значений: "begin" - точки добавляются в начало ломаной линии, "end"- точки добавляются в конец. Значение по умолчанию - "end".

События

Имя Описание
beforeedgedrag
Событие, предшествующее событию edgedrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
Имена методов, доступных через метод Event.callMethod:
  • setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие edgedrag будет отменено.
beforeedgedragstart
Событие, предшествующее событию edgedragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие edgedragstart, будет отменено.
beforevertexadd
Событие, предшествующее событию vertexadd. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
Имена методов, доступных через метод Event.callMethod:
  • setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexadd будет отменено.
beforevertexdrag
Событие, предшествующее событию vertexdrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
Имена методов, доступных через метод Event.callMethod:
  • setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexdrag будет отменено.
beforevertexdragstart
Событие, предшествующее событию vertexdragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие vertexdragstart, будет отменено.
beforevertexdraw
Событие, предшествующее событию vertexdraw. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
Имена методов, доступных через метод Event.callMethod:
  • setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexdraw будет отменено.
edgedrag
Перетаскивание промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
edgedragend

Завершение перетаскивания промежуточной метки. Экземпляр класса Event.

edgedragstart
Начало перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
optionschange

Изменение в опциях объекта.

Унаследовано от ICustomizable.

statechange

Изменение состояния редактора геометрии. Экземпляр класса Event.

Унаследовано от IGeometryEditor.

vertexadd
Добавление новой вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавленной вершины, модель данных;
  • vertexIndex - индекс добавленной вершины;
  • globalPixels - координаты добавленной вершины в глобальных пиксельных координатах.
vertexdrag
Перетаскивание вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
vertexdragend

Завершение перетаскивания вершины. Экземпляр класса Event.

vertexdragstart
Начало перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
vertexdraw
Рисование новой вершины. Данное событие, как правило, предшествует событию добавления вершины и возникает в момент движения мышью при включенном режиме добавления новых вершин. На основе данных, передаваемых в данном событии, отображаются направляющие линии в режиме добавления новых вершин. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.

Методы

Имя Возвращает Описание
getModel()

geometryEditor.model.RootLineString

Returns ссылку на модель данных редактора.

getView()

geometryEditor.view.Path

Returns ссылку на объект отображения редактора.

startDrawing()

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

startEditing()

Включает режим редактирования.

Унаследован от IGeometryEditor.

stopDrawing()

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

stopEditing()

Отключает режим редактирования.

Унаследован от IGeometryEditor.

Описание полей

state

{IDataManager} state

Менеджер состояния редактора геометрии.

Поля данных, доступные посредством методов get и set:

  • editing - определяет включен ли редактор. Тип - Boolean. Значение по умолчанию - false.
  • drawing - определяет включен ли режим добавления новых вершин. Тип - Boolean. Значение по умолчанию - false.
  • drawingFrom - определяет то, как добавляются новые точки в режиме добавления. Может принимать одно из двух строковых значений: "begin" - точки добавляются в начало ломаной линии, "end"- точки добавляются в конец. Значение по умолчанию - "end".

Описание событий

beforeedgedrag

Событие, предшествующее событию edgedrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
Имена методов, доступных через метод Event.callMethod:
  • setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие edgedrag будет отменено.

beforeedgedragstart

Событие, предшествующее событию edgedragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие edgedragstart, будет отменено.

beforevertexadd

Событие, предшествующее событию vertexadd. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
Имена методов, доступных через метод Event.callMethod:
  • setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexadd будет отменено.

Пример:

// Корректируем координаты событий добавления вершин так, чтобы они не выходили за границы квадрата со стороной
// 100 пикселей и центром, совпадающим с центром карты.
polyline.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

Событие, предшествующее событию vertexdrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.
Имена методов, доступных через метод Event.callMethod:
  • setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexdrag будет отменено.

Пример:

// Инвертируем сдвиг при перетаскивании вершины.
polyline.editor.events.add("beforevertexdrag", function (event) {
    var pixelOffset = event.get("pixelOffset");
    event.callMethod("setPixelOffset", [-pixelOffset[0], -pixelOffset[1]]);
});

beforevertexdragstart

Событие, предшествующее событию vertexdragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие vertexdragstart, будет отменено.

beforevertexdraw

Событие, предшествующее событию vertexdraw. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.
Имена методов, доступных через метод Event.callMethod:
  • setGlobalPixels - метод позволяет скорректировать значения координат добавляемой вершины. В качестве аргумента принимает новые глобальные пиксельные координаты вершины в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие vertexdraw будет отменено.

edgedrag

Перетаскивание промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.

edgedragend

Завершение перетаскивания промежуточной метки. Экземпляр класса Event.

edgedragstart

Начало перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.

vertexadd

Добавление новой вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавленной вершины, модель данных;
  • vertexIndex - индекс добавленной вершины;
  • globalPixels - координаты добавленной вершины в глобальных пиксельных координатах.

vertexdrag

Перетаскивание вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге.

vertexdragend

Завершение перетаскивания вершины. Экземпляр класса Event.

vertexdragstart

Начало перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.

vertexdraw

Рисование новой вершины. Данное событие, как правило, предшествует событию добавления вершины и возникает в момент движения мышью при включенном режиме добавления новых вершин. На основе данных, передаваемых в данном событии, отображаются направляющие линии в режиме добавления новых вершин. Экземпляр класса Event. Имена полей, доступных через метод Event.get:
  • parentModel - ссылка на родительскую, для добавляемой вершины, модель данных;
  • vertexIndex - индекс добавляемой вершины;
  • globalPixels - координаты добавляемой вершины в глобальных пиксельных координатах.

Описание методов

getModel

Returns ссылку на модель данных редактора.

getView

Returns ссылку на объект отображения редактора.

startDrawing

{} startDrawing()

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

stopDrawing

{} stopDrawing()

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