Документация
Справочник JavaScript API
2.1.64 (текущая версия)
collection
interactivityModel
Интерфейсы

geometryEditor.LineString

Расширяет IGeometryEditor.

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

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

Конструктор

geometryEditor.LineString(geometry[, options])

Параметры:

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

* Обязательный параметр/опция.

]no-highlight]

Тип: ILineStringGeometry

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

options

Тип: Object

Опции редактора геометрии.

options.dblClickHandler

Тип: Function

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

options.drawingCursor "arrow"

Тип: Boolean

Курсор мыши в режиме добавления новых вершин.

options.drawOver true

Тип: Boolean

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

options.edgeInteractiveOptions true

Тип: Boolean

Позволяет использовать для промежуточных меток опции с постфиксами, привязанными к текущему состоянию метки. Доступны следующие постфиксы:

  • Hover — опции с данным постфиксом применяются при наведении на метку указателя мыши;
  • Drag — опции с данным постфиксом применяются при перетаскивании метки.
Примеры таких опций: edgeLayoutHover, edgeIconImageSizeActive, edgeIconImageShapeHover и т. д. Если вам не требуется менять опции промежуточных меток в зависимости от их состояния, то нужно отключить данную опцию.

options.edgeLayout

Тип: Function

Класс макета для промежуточных меток.

options.maxPoints Infinity

Тип: Number

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

options.menuManager

Тип: Function

Диспетчер контекстного меню, открывающегося при щелчке по вершине. Принимает два аргумента:

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

options.minPoints 0

Тип: Number

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

options.useAutoPanInDrawing true

Тип: Boolean

Включается режим автоматического передвижения карты при перетаскивании вершины на границе.

options.useMapMarginInDrawing true

Тип: Boolean

Нужно ли учитывать отступы карты в режиме рисования.

options.vertexInteractiveOptions true

Тип: Boolean

Позволяет использовать для меток вершин опции с постфиксами, привязанными к текущему состоянию вершины. Доступны следующие постфиксы:

  • Hover — опции с данным постфиксом применяются при наведении на вершину метки указателя мыши;
  • Drag — опции с данным постфиксом применяются при перетаскивании вершины.
  • Active — опции с данным постфиксом применяются когда для вершины открыто контекстное меню.
Примеры таких опций: vertexLayoutHover, vertexIconImageSizeActive, vertexIconImageShapeHover и т. д. Если вам не требуется менять опции меток вершин в зависимости от их состояния, то нужно отключить данную опцию.

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 - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.
Имена методов, доступных через метод Event.callMethod:
  • setPixelOffset - метод, позволяющий скорректировать значение пиксельного сдвига, который будет фактически применен. В качестве аргумента принимает новый пиксельный сдвиг в виде массива из двух чисел.
Если у данного события вызвать метод Event.preventDefault, то последующее событие edgedrag будет отменено.

beforeedgedragstart

Событие, предшествующее событию edgedragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие edgedragstart, будет отменено.

beforevertexadd

Событие, предшествующее событию vertexadd. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

beforevertexdrag

Событие, предшествующее событию vertexdrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

beforevertexdragstart

Событие, предшествующее событию vertexdragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

beforevertexdraw

Событие, предшествующее событию vertexdraw. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

drawingstart

Включение режима добавления новых вершин. Экземпляр класса Event.

drawingstop

Отключение режима добавления новых вершин. Экземпляр класса Event.

edgedrag

Перетаскивание промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

edgedragend

Завершение перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

edgedragstart

Начало перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

editingstart

Включение режима редактирования вершин. Экземпляр класса Event.

editingstop

Отключение режима редактирования вершин. Экземпляр класса Event.

framingstart

Включение режима масштабирования. Экземпляр класса Event.

framingstop

Отключение режима масштабирования. Экземпляр класса Event.

optionschange

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

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

statechange

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

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

vertexadd

Добавление новой вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

vertexdrag

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

  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdragend

Завершение перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdragstart

Начало перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdraw

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

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

Методы

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

vow.Promise

Возвращает объект-обещание, который подтверждается объектом модели в момент ее фактического создания, либо отклоняется с одним из следующих кодов ошибки:

  • Canceled - режим редактирования отключен до момента фактического создания модели;
  • Editor wasn't started - режим редактирования не включен.
.

getModelSync()

geometryEditor.model.RootLineString|null

Возвращает модель данных редактора или null, если на момент вызова она отсутствует.

getView()

vow.Promise

Возвращает объект-обещание, который подтверждается объектом отображения в момент его фактического создания, либо отклоняется с одним из следующих кодов ошибки:

  • Canceled - режим редактирования отключен до момента фактического создания отображения;
  • Editor wasn't started - режим редактирования не включен.
.

getViewSync()

geometryEditor.view.Path|null

Возвращает отображение редактора или null, если на момент вызова оно отсутствует.

startDrawing()

vow.Promise

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

startEditing()

vow.Promise

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

startFraming()

vow.Promise

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

stopDrawing()

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

stopEditing()

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

stopFraming()

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

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

state

{IDataManager} state

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

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

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

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

beforeedgedrag

Событие, предшествующее событию edgedrag. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

beforeedgedragstart

Событие, предшествующее событию edgedragstart. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.
Если у данного события вызвать метод 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 - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.
Имена методов, доступных через метод 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), если оно имеется.
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.
Если у данного события вызвать метод Event.preventDefault, то последующее перетаскивание, как и событие vertexdragstart, будет отменено.

beforevertexdraw

Событие, предшествующее событию vertexdraw. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

drawingstart

Включение режима добавления новых вершин. Экземпляр класса Event.

drawingstop

Отключение режима добавления новых вершин. Экземпляр класса Event.

edgedrag

Перетаскивание промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

edgedragend

Завершение перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

edgedragstart

Начало перетаскивания промежуточной метки. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • edgeModel - ссылка на модель перетаскиваемой метки;
  • globalPixels - координаты перетаскиваемой метки в глобальных пиксельных координатах.

editingstart

Включение режима редактирования вершин. Экземпляр класса Event.

editingstop

Отключение режима редактирования вершин. Экземпляр класса Event.

framingstart

Включение режима масштабирования. Экземпляр класса Event.

framingstop

Отключение режима масштабирования. Экземпляр класса Event.

vertexadd

Добавление новой вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

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

vertexdrag

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

  • pixelOffset - массив из двух чисел, описывающий пиксельный сдвиг на данном шаге;
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdragend

Завершение перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdragstart

Начало перетаскивания вершины. Экземпляр класса Event. Имена полей, доступных через метод Event.get:

  • domEvent - исходное DOM-событие (в виде объекта DomEvent), если оно имеется.
  • vertexModel - ссылка на модель перетаскиваемой вершины;
  • globalPixels - координаты перетаскиваемой вершины в глобальных пиксельных координатах.

vertexdraw

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

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

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

getModel

{vow.Promise} getModel()

Возвращает объект-обещание, который подтверждается объектом модели в момент ее фактического создания, либо отклоняется с одним из следующих кодов ошибки:

  • Canceled - режим редактирования отключен до момента фактического создания модели;
  • Editor wasn't started - режим редактирования не включен.
.

getModelSync

Возвращает модель данных редактора или null, если на момент вызова она отсутствует.

getView

{vow.Promise} getView()

Возвращает объект-обещание, который подтверждается объектом отображения в момент его фактического создания, либо отклоняется с одним из следующих кодов ошибки:

  • Canceled - режим редактирования отключен до момента фактического создания отображения;
  • Editor wasn't started - режим редактирования не включен.
.

getViewSync

{geometryEditor.view.Path|null} getViewSync()

Возвращает отображение редактора или null, если на момент вызова оно отсутствует.

startDrawing

{vow.Promise} startDrawing()

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

Возвращает объект-обещание, который подтверждается в момент фактического старта режима добавления новых вершин, либо отклоняется с одним из следующих кодов ошибки:

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

startEditing

{vow.Promise} startEditing()

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

Возвращает объект-обещание, который подтверждается в момент фактического старта режима редактирования, либо отклоняется с одним из следующих кодов ошибки:

  • Canceled - режим редактирования отключен до момента его фактического старта.
.

startFraming

{vow.Promise} startFraming()

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

Возвращает Promise, который подтверждается в момент фактического старта режима масштабирования.

stopDrawing

{} stopDrawing()

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

stopEditing

{} stopEditing()

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

stopFraming

{} stopFraming()

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