Spec-Zone.ru › OpenLayers

ol/interaction/Modify~Modify


import Modify from 'ol/interaction/Modify.js';

Взаимодействие для изменения геометрии объектов. Чтобы изменять объекты, добавленные в существующий источник, создайте взаимодействие изменения с параметром source. Чтобы изменять объекты в коллекции (например, коллекции, используемой взаимодействием выбора), создайте взаимодействие с параметром features. При создании взаимодействия необходимо указать параметр source или features.

Для определения объектов, которые будут изменены, используется декартово расстояние от указателя. Это означает, что геометрии будут рассматриваться для изменения, только если они находятся в пределах заданного pixelTolerance. Для точечных геометрий можно использовать параметр hitDetection, чтобы сопоставить их визуальное отображение.

По умолчанию взаимодействие позволяет удалять вершины при нажатии клавиши alt. Чтобы настроить взаимодействие с другим условием удаления, используйте параметр deleteCondition.

new Modify(options)

interaction/Modify.js, строка 256
Имя Тип Описание
condition Condition | undefined

Функция, которая принимает MapBrowserEvent и возвращает логическое значение, указывающее, следует ли считать это событие добавлением вершины в эскиз или перемещением вершины в нём. По умолчанию используется primaryAction.

deleteCondition Condition | undefined

Функция, которая принимает MapBrowserEvent и возвращает логическое значение, указывающее, следует ли обрабатывать это событие. По умолчанию сочетание singleClick и altKeyOnly приводит к удалению вершины. Это сочетание реализуется объединением проверок двух условий в одной функции:

import { altKeyOnly, singleClick } from 'ol/events/condition.js';

function (event) {
  return altKeyOnly(event) && singleClick(event)
}
insertVertexCondition Condition | undefined

Функция, которая принимает MapBrowserEvent и возвращает логическое значение, указывающее, следует ли добавить новую вершину в объекты эскиза. По умолчанию используется always.

pixelTolerance number (defaults to 10)

Допуск в пикселях для определения того, находится ли указатель достаточно близко к сегменту или вершине для редактирования.

style StyleLike | FlatStyleLike | undefined

Стиль точки или вершины, подвергаемой изменению. Для линий и полигонов это будет затронутая вершина, для окружностей — точка на окружности, а для точек — сама точка. Если стиль не задан, используется стиль редактирования по умолчанию (см. Style). При использовании функции стиля точечный объект, передаваемый функции, будет иметь свойство existing, указывающее, находится ли под ним существующая вершина, свойство features — массив, элементами которого являются изменяемые объекты, и свойство geometries — массив, элементами которого являются изменяемые геометрии. Оба массива расположены в одинаковом порядке. Параметр geometries полезен только при изменении коллекций геометрий: он указывает на конкретную геометрию коллекции, которая изменяется.

source VectorSource | undefined

Векторный источник с объектами для изменения. Если векторный источник не задан, необходимо передать коллекцию объектов с помощью параметра features.

hitDetection boolean | BaseVectorLayer | undefined

Если задан, точечные объекты будут рассматриваться для изменения с учётом их визуального отображения, а не расстояния от указателя, заданного параметром pixelTolerance. Если указан BaseVectorLayer, будет учитываться только отрисованное представление объектов на этом слое.

features Collection<Feature> | undefined

Объекты, с которыми работает взаимодействие. Если коллекция объектов не задана, необходимо передать векторный источник с помощью параметра source.

filter FilterFunction | undefined

Функция, которая принимает Feature и возвращает true, если объект можно изменять, или false в противном случае.

trace boolean | Condition (defaults to false)

Копировать часть другой геометрии. Копирование начинается, когда две соседние вершины перетаскиваются на целевую геометрию, при этом между ними не выполняется никаких других изменений.

traceSource VectorSource | undefined

Источник объектов для копирования. Если копирование включено, а параметр traceSource не задан, будет использоваться параметр source взаимодействия. Для копирования необходимо, чтобы взаимодействие было настроено с параметром traceSource или source.

wrapX boolean (defaults to false)

Оборачивать мир по горизонтали на слое эскиза.

snapToPointer boolean (defaults to !hitDetection)

Изменяемая вершина, точка или сегмент привязывается к координате указателя при щелчке в пределах pixelTolerance.

sharedVerticesEqual function | undefined

Функция, которая принимает две координаты и возвращает значение, указывающее, следует ли считать их равными при сопоставлении вершин. По умолчанию сравниваются все измерения координат. Это полезно, когда объекты имеют координаты разных размерностей (например, XY и XYZ), но должны считаться имеющими общие вершины в одинаковой двумерной позиции.

События:
  • change (BaseEvent) — Общее событие изменения. Вызывается при увеличении счётчика ревизий.
  • change:active (ObjectEvent)
  • error (BaseEvent) — Общее событие ошибки. Вызывается при возникновении ошибки.
  • modifyend (ModifyEvent) — Вызывается при завершении изменения объекта
  • modifystart (ModifyEvent) — Вызывается при начале изменения объекта
  • propertychange (ObjectEvent) — Вызывается при изменении свойства.

Наследует

  • PointerInteraction

Наблюдаемые свойства

Имя Тип Можно задать Тип ObjectEvent Описание
active boolean да change:active

true, если взаимодействие активно, и false в противном случае.

Методы

canInsertPoint(){boolean}

interaction/Modify.js, строка 2312

Проверяет, можно ли вставить точку в текущую линию или полигон в позиции указателя.

Возвращает:
В текущей позиции указателя можно вставить точку.

canRemovePoint(){boolean}

interaction/Modify.js, строка 2120

Проверяет, можно ли удалить точку из текущей линии или полигона в позиции указателя.

Возвращает:
В текущей позиции указателя можно удалить точку.

changed() унаследовано

Observable.js, строка 68

Увеличивает счётчик ревизий и отправляет событие 'change'.

dispatchEvent(event){boolean | undefined} унаследовано

events/Target.js, строка 85

Отправляет событие и вызывает все обработчики, ожидающие события этого типа. Параметр события может быть строкой или объектом со свойством type.

Имя Тип Описание
event BaseEvent | string

Объект события.

Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если какой-либо из обработчиков вернул false.

get(key){*} унаследовано

Object.js, строка 136

Получает значение.

Имя Тип Описание
key string

Имя ключа.

Возвращает:
Значение.

getActive(){boolean} унаследовано

interaction/Interaction.js, строка 82

Возвращает, активно ли взаимодействие в данный момент.

Возвращает:
true, если взаимодействие активно, и false в противном случае.

getKeys(){Array.<string>} унаследовано

Object.js, строка 149

Возвращает список имён свойств объекта.

Возвращает:
Список имён свойств.

getMap(){Map | null} унаследовано

interaction/Interaction.js, строка 91

Возвращает карту, связанную с этим взаимодействием.

Возвращает:
Карта.

getOverlay(){VectorLayer}

interaction/Modify.js, строка 714

Возвращает слой наложения, на котором это взаимодействие отображает изменяемую точку или вершину.

Возвращает:
Слой наложения.

getPointerCount(){number} унаследовано

interaction/Pointer.js, строка 95

Возвращает текущее количество указателей, участвующих во взаимодействии, например 2 при использовании двух пальцев.

Возвращает:
Количество указателей.

getProperties(){NoInfer.<Properties>} унаследовано

Object.js, строка 158

Возвращает объект со всеми именами свойств и их значениями.

Возвращает:
Объект.

getRevision(){number} унаследовано

Observable.js, строка 79

Возвращает номер версии этого объекта. При каждом изменении объекта номер его версии увеличивается.

Возвращает:
Ревизия.

insertPoint(coordinate){boolean}

interaction/Modify.js, строка 2345

Вставляет вершину, на которую в данный момент указывает указатель, в текущую линию или полигон.

Имя Тип Описание
coordinate Coordinate | undefined

Если задано, указатель будет установлен в указанные координаты. В противном случае используется текущая координата указателя.

Возвращает:
Вершина была вставлена.

on(type, listener){EventsKey | Array<EventsKey>} унаследовано

Observable.js, строка 152

Подписывается на события указанного типа.

Имя Тип Описание
type string | Array.<string>

Тип события или массив типов событий.

listener function

Функция-обработчик.

Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.

once(type, listener){EventsKey | Array<EventsKey>} унаследовано

Observable.js, строка 164

Однократно подписывается на события указанного типа.

Имя Тип Описание
type string | Array.<string>

Тип события или массив типов событий.

listener function

Функция-обработчик.

Возвращает:
Уникальный ключ обработчика. Если первым аргументом передан массив типов событий, возвращается массив ключей.

removePoint(coordinate){boolean}

interaction/Modify.js, строка 2151

Удаляет вершину, на которую в данный момент указывает указатель, из текущей линии или полигона.

Имя Тип Описание
coordinate Coordinate | undefined

Если задано, указатель будет установлен в указанные координаты. В противном случае используется текущая координата указателя.

Возвращает:
True, если вершина была удалена.

set(key, value, silent) унаследовано

Object.js, строка 218

Задаёт значение.

Имя Тип Описание
key string

Имя ключа.

value *

Значение.

silent boolean | undefined

Обновить без вызова события.

setActive(active)

interaction/Modify.js, строка 689

Активирует или деактивирует взаимодействие.

Имя Тип Описание
active boolean

Активно.

setProperties(values, silent) унаследовано

Object.js, строка 238

Задаёт набор пар «ключ — значение». Обратите внимание, что при этом изменяются существующие свойства и добавляются новые (существующие свойства не удаляются).

Имя Тип Описание
values Partial.<NoInfer.<Properties>>

Значения.

silent boolean | undefined

Обновить без вызова события.

un(type, listener) унаследовано

Observable.js, строка 173

Отменяет подписку на события указанного типа.

Имя Тип Описание
type string | Array.<string>

Тип события или массив типов событий.

listener function

Функция-обработчик.

unset(key, silent) унаследовано

Object.js, строка 262

Удаляет свойство.

Имя Тип Описание
key string

Имя ключа.

silent boolean | 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API