ol/interaction/Modify~Modify
import Modify from 'ol/interaction/Modify.js';
Взаимодействие для изменения геометрии объектов. Чтобы изменять объекты, добавленные в существующий источник, создайте взаимодействие изменения с параметром source. Чтобы изменять объекты в коллекции (например, коллекции, используемой взаимодействием выбора), создайте взаимодействие с параметром features. При создании взаимодействия необходимо указать параметр source или features.
Для определения объектов, которые будут изменены, используется декартово расстояние от указателя. Это означает, что геометрии будут рассматриваться для изменения, только если они находятся в пределах заданного pixelTolerance. Для точечных геометрий можно использовать параметр hitDetection, чтобы сопоставить их визуальное отображение.
По умолчанию взаимодействие позволяет удалять вершины при нажатии клавиши alt. Чтобы настроить взаимодействие с другим условием удаления, используйте параметр deleteCondition.
-
new Modify(options)
-
Имя Тип Описание conditionCondition | undefined Функция, которая принимает
MapBrowserEventи возвращает логическое значение, указывающее, следует ли считать это событие добавлением вершины в эскиз или перемещением вершины в нём. По умолчанию используетсяprimaryAction.deleteConditionCondition | undefined Функция, которая принимает
MapBrowserEventи возвращает логическое значение, указывающее, следует ли обрабатывать это событие. По умолчанию сочетаниеsingleClickиaltKeyOnlyприводит к удалению вершины. Это сочетание реализуется объединением проверок двух условий в одной функции:import { altKeyOnly, singleClick } from 'ol/events/condition.js'; function (event) { return altKeyOnly(event) && singleClick(event) }insertVertexConditionCondition | undefined Функция, которая принимает
MapBrowserEventи возвращает логическое значение, указывающее, следует ли добавить новую вершину в объекты эскиза. По умолчанию используетсяalways.pixelTolerancenumber (defaults to 10) Допуск в пикселях для определения того, находится ли указатель достаточно близко к сегменту или вершине для редактирования.
styleStyleLike | FlatStyleLike | undefined Стиль точки или вершины, подвергаемой изменению. Для линий и полигонов это будет затронутая вершина, для окружностей — точка на окружности, а для точек — сама точка. Если стиль не задан, используется стиль редактирования по умолчанию (см.
Style). При использовании функции стиля точечный объект, передаваемый функции, будет иметь свойствоexisting, указывающее, находится ли под ним существующая вершина, свойствоfeatures— массив, элементами которого являются изменяемые объекты, и свойствоgeometries— массив, элементами которого являются изменяемые геометрии. Оба массива расположены в одинаковом порядке. Параметрgeometriesполезен только при изменении коллекций геометрий: он указывает на конкретную геометрию коллекции, которая изменяется.sourceVectorSource | undefined Векторный источник с объектами для изменения. Если векторный источник не задан, необходимо передать коллекцию объектов с помощью параметра
features.hitDetectionboolean | BaseVectorLayer | undefined Если задан, точечные объекты будут рассматриваться для изменения с учётом их визуального отображения, а не расстояния от указателя, заданного параметром
pixelTolerance. Если указанBaseVectorLayer, будет учитываться только отрисованное представление объектов на этом слое.featuresCollection<Feature> | undefined Объекты, с которыми работает взаимодействие. Если коллекция объектов не задана, необходимо передать векторный источник с помощью параметра
source.filterFilterFunction | undefined Функция, которая принимает
Featureи возвращаетtrue, если объект можно изменять, илиfalseв противном случае.traceboolean | Condition (defaults to false) Копировать часть другой геометрии. Копирование начинается, когда две соседние вершины перетаскиваются на целевую геометрию, при этом между ними не выполняется никаких других изменений.
traceSourceVectorSource | undefined Источник объектов для копирования. Если копирование включено, а параметр
traceSourceне задан, будет использоваться параметрsourceвзаимодействия. Для копирования необходимо, чтобы взаимодействие было настроено с параметромtraceSourceилиsource.wrapXboolean (defaults to false) Оборачивать мир по горизонтали на слое эскиза.
snapToPointerboolean (defaults to !hitDetection) Изменяемая вершина, точка или сегмент привязывается к координате указателя при щелчке в пределах
pixelTolerance.sharedVerticesEqualfunction | undefined Функция, которая принимает две координаты и возвращает значение, указывающее, следует ли считать их равными при сопоставлении вершин. По умолчанию сравниваются все измерения координат. Это полезно, когда объекты имеют координаты разных размерностей (например, XY и XYZ), но должны считаться имеющими общие вершины в одинаковой двумерной позиции.
События:
-
change(BaseEvent) — Общее событие изменения. Вызывается при увеличении счётчика ревизий. -
change:active(ObjectEvent) -
error(BaseEvent) — Общее событие ошибки. Вызывается при возникновении ошибки. -
modifyend(ModifyEvent) — Вызывается при завершении изменения объекта -
modifystart(ModifyEvent) — Вызывается при начале изменения объекта -
propertychange(ObjectEvent) — Вызывается при изменении свойства.
-
Наследует
Наблюдаемые свойства
| Имя | Тип | Можно задать | Тип ObjectEvent | Описание |
|---|---|---|---|---|
active | boolean | да | change:active |
|
Методы
-
canInsertPoint(){boolean}
-
Проверяет, можно ли вставить точку в текущую линию или полигон в позиции указателя.
Возвращает:
В текущей позиции указателя можно вставить точку.
-
canRemovePoint(){boolean}
-
Проверяет, можно ли удалить точку из текущей линии или полигона в позиции указателя.
Возвращает:
В текущей позиции указателя можно удалить точку.
-
changed() унаследовано
-
Увеличивает счётчик ревизий и отправляет событие 'change'.
-
dispatchEvent(event){boolean | undefined} унаследовано
-
Отправляет событие и вызывает все обработчики, ожидающие события этого типа. Параметр события может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | string Объект события.
Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если какой-либо из обработчиков вернул false.
-
get(key){*} унаследовано
-
Получает значение.
Имя Тип Описание keystring Имя ключа.
Возвращает:
Значение.
-
getActive(){boolean} унаследовано
-
Возвращает, активно ли взаимодействие в данный момент.
Возвращает:
true, если взаимодействие активно, иfalseв противном случае.
-
getKeys(){Array.<string>} унаследовано
-
Возвращает список имён свойств объекта.
Возвращает:
Список имён свойств.
-
getMap(){Map | null} унаследовано
-
Возвращает карту, связанную с этим взаимодействием.
Возвращает:
Карта.
-
getOverlay(){VectorLayer}
-
Возвращает слой наложения, на котором это взаимодействие отображает изменяемую точку или вершину.
Возвращает:
Слой наложения.
-
getPointerCount(){number} унаследовано
-
Возвращает текущее количество указателей, участвующих во взаимодействии, например
2при использовании двух пальцев.Возвращает:
Количество указателей.
-
getProperties(){NoInfer.<Properties>} унаследовано
-
Возвращает объект со всеми именами свойств и их значениями.
Возвращает:
Объект.
-
getRevision(){number} унаследовано
-
Возвращает номер версии этого объекта. При каждом изменении объекта номер его версии увеличивается.
Возвращает:
Ревизия.
-
insertPoint(coordinate){boolean}
-
Вставляет вершину, на которую в данный момент указывает указатель, в текущую линию или полигон.
Имя Тип Описание coordinateCoordinate | undefined Если задано, указатель будет установлен в указанные координаты. В противном случае используется текущая координата указателя.
Возвращает:
Вершина была вставлена.
-
on(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Подписывается на события указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
once(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Однократно подписывается на события указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.
-
removePoint(coordinate){boolean}
-
Удаляет вершину, на которую в данный момент указывает указатель, из текущей линии или полигона.
Имя Тип Описание coordinateCoordinate | undefined Если задано, указатель будет установлен в указанные координаты. В противном случае используется текущая координата указателя.
Возвращает:
True, если вершина была удалена.
-
set(key, value, silent) унаследовано
-
Задаёт значение.
Имя Тип Описание keystring Имя ключа.
value* Значение.
silentboolean | undefined Обновить без вызова события.
-
setActive(active)
-
Активирует или деактивирует взаимодействие.
Имя Тип Описание activeboolean Активно.
-
setProperties(values, silent) унаследовано
-
Задаёт набор пар «ключ — значение». Обратите внимание, что при этом изменяются существующие свойства и добавляются новые (существующие свойства не удаляются).
Имя Тип Описание valuesPartial.<NoInfer.<Properties>> Значения.
silentboolean | undefined Обновить без вызова события.
-
un(type, listener) унаследовано
-
Отменяет подписку на события указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
-
unset(key, silent) унаследовано
-
Удаляет свойство.
Имя Тип Описание keystring Имя ключа.
silentboolean | undefined Удалить без вызова события.
© 2005-present, OpenLayers Contributors All rights reserved.Licensed under the BSD 2-Clause License.
https://openlayers.org/en/latest/apidoc/module-ol_interaction_Modify-Modify.html