ol/interaction/Select~Select
import Select from 'ol/interaction/Select.js';
Взаимодействие для выбора векторных объектов. По умолчанию выбранные объекты отображаются в другом стиле, поэтому это взаимодействие можно использовать для визуального выделения, а также для выбора объектов для других действий, например изменения или вывода. Есть три способа управлять выбором объектов: с помощью события браузера, определяемого параметром condition, и, при необходимости, параметрами toggle, add/remove и multi; фильтра layers; а также дополнительного фильтра объектов, задаваемого параметром filter.
-
new Select(options)
-
Имя Тип Описание addConditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, указывающее, следует ли обрабатывать это событие. По умолчанию этоnever. Используйте этот параметр, если хотите применять разные события для добавления и удаления вместоtoggle.conditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, указывающее, следует ли обрабатывать это событие. Это событие применяется ко всем выбранным объектам. По умолчанию этоsingleClick. Щелчок по объекту выбирает его и снимает выбор со всех ранее выбранных объектов. Щелчок вне любого объекта снимает выбор со всех объектов. Параметрыtoggle,addиremoveпозволяют добавлять объекты в выборку и удалять их из неё.layersArray<Layer> | function | undefined Список слоёв, из которых следует выбирать объекты. Вместо этого можно указать функцию-фильтр. Функция будет вызвана для каждого слоя карты и должна возвращать
trueдля слоёв, в которых разрешён выбор объектов. Если параметр не указан, для выбора будут доступны все видимые слои.styleStyleLike | null | undefined Стиль выбранных объектов. По умолчанию используется стандартный стиль редактирования (см.
Style). Укажитеnull, если это взаимодействие не должно изменять стиль выбранных объектов. Если указано значение, трактуемое как ложное, стиль выбранного объекта не изменится.removeConditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, указывающее, следует ли обрабатывать это событие. По умолчанию этоnever. Используйте этот параметр, если хотите применять разные события для добавления и удаления вместоtoggle.toggleConditionCondition | undefined Функция, принимающая
MapBrowserEventи возвращающая логическое значение, указывающее, следует ли обрабатывать это событие. Это дополнительное событие к событиюcondition. По умолчанию используетсяshiftKeyOnly, то есть нажатиеshiftвместе с событиемconditionдобавляет объект в текущую выборку, если он ещё не выбран, и удаляет его, если он уже выбран. Используйтеaddиremove, если хотите применить другие события вместо переключения выбора.multiboolean (по умолчанию false) Логическое значение, определяющее, должно ли поведение по умолчанию выбирать только один объект или все объекты, расположенные друг над другом в точке щелчка на карте. Значение по умолчанию
falseозначает выбор одного объекта.featuresCollection<Feature> | undefined Коллекция, в которую взаимодействие помещает выбранные объекты. Необязательный параметр. Если он не задан, взаимодействие создаст коллекцию. В любом случае коллекция, используемая взаимодействием, возвращается методом
getFeatures.filterFilterFunction | undefined Функция, принимающая
FeatureиLayerи возвращающаяtrue, если объект можно выбрать, илиfalseв противном случае.hitTolerancenumber (по умолчанию 0) Допуск при обнаружении объектов. Для поиска объектов проверяются пиксели в пределах радиуса вокруг указанной позиции.
События:
-
change(BaseEvent) — Общее событие изменения. Вызывается при увеличении счётчика ревизий. -
change:active(ObjectEvent) -
error(BaseEvent) — Общее событие ошибки. Вызывается при возникновении ошибки. -
propertychange(ObjectEvent) — Вызывается при изменении свойства. -
select(SelectEvent) — Вызывается, когда объект(ы) выбран(ы) или выбор снят.
-
Расширяет
Наблюдаемые свойства
| Имя | Тип | Можно задать | Тип ObjectEvent | Описание |
|---|---|---|---|---|
active | boolean | да | change:active |
|
Методы
-
changed() унаследовано
-
Увеличивает счётчик ревизий и отправляет событие 'change'.
-
clearSelection()
-
Снимает выделение со всех объектов так, как если бы пользователь снял его. В отличие от
select.getFeatures().clear(), это вызывает SelectEvent. У событияSelectEvent, отправленного этим методом, не будет свойства mapBrowserEvent -
deselectFeature(feature){boolean}
-
Пытается снять выделение с объекта так, как если бы по нему щёлкнули. В отличие от
select.getFeatures().remove(feature), это вызывает SelectEvent. У событияSelectEvent, отправленного этим методом, не будет свойства mapBrowserEventИмя Тип Описание featureFeature Объект, с которого нужно снять выделение
Возвращает:
True, если выделение объекта было снято
-
dispatchEvent(event){boolean | undefined} унаследовано
-
Отправляет событие и вызывает все обработчики, ожидающие события этого типа. Параметр event может быть строкой или объектом со свойством
type.Имя Тип Описание eventBaseEvent | string Объект события.
Возвращает:
false, если кто-либо вызвал preventDefault для объекта события или если любой из обработчиков вернул false.
-
get(key){*} унаследовано
-
Получает значение.
Имя Тип Описание keystring Имя ключа.
Возвращает:
Значение.
-
getActive(){boolean} унаследовано
-
Возвращает, активен ли в данный момент интерактивный элемент.
Возвращает:
true, если интерактивный элемент активен, иначеfalse.
-
getFeatures(){Collection<Feature>}
-
Возвращает выделенные объекты.
Возвращает:
Коллекция объектов.
-
getHitTolerance(){number}
-
Возвращает допуск при обнаружении попадания.
Возвращает:
Допуск попадания в пикселях.
-
getKeys(){Array.<string>} унаследовано
-
Возвращает список имён свойств объекта.
Возвращает:
Список имён свойств.
-
getLayer(feature){VectorLayer}
-
Возвращает связанный
vector layerдля выделенного объекта.Имя Тип Описание featureFeature Объект
Возвращает:
Слой.
-
getMap(){Map | null} унаследовано
-
Возвращает карту, связанную с этим интерактивным элементом.
Возвращает:
Карта.
-
getProperties(){NoInfer.<Properties>} унаследовано
-
Возвращает объект со всеми именами свойств и их значениями.
Возвращает:
Объект.
-
getRevision(){number} унаследовано
-
Возвращает номер версии этого объекта. При каждом изменении объекта номер его версии увеличивается.
Возвращает:
Ревизия.
-
on(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Ожидает событие указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если в качестве первого аргумента передан массив типов событий, возвращаемым значением будет массив ключей.
-
once(type, listener){EventsKey | Array<EventsKey>} унаследовано
-
Однократно ожидает событие указанного типа.
Имя Тип Описание typestring | Array.<string> Тип события или массив типов событий.
listenerfunction Функция-обработчик.
Возвращает:
Уникальный ключ обработчика. Если в качестве первого аргумента передан массив типов событий, возвращаемым значением будет массив ключей.
-
selectFeature(feature){boolean}
-
Пытается выделить объект так, как если бы по нему щёлкнули и
addConditionимело значение True. В отличие от прямого измененияselect.getFeatures(), этот метод учитывает параметрыfilterиlayers(за исключениемmulti, который игнорируется). У событияSelectEvent, отправленного этим методом, не будет свойства mapBrowserEventИмя Тип Описание featureFeature Объект, который нужно выделить
Возвращает:
True, если объект был выделен
-
set(key, value, silent) унаследовано
-
Задаёт значение.
Имя Тип Описание keystring Имя ключа.
value* Значение.
silentboolean | undefined Обновить без вызова события.
-
setActive(active) унаследовано
-
Активирует или деактивирует интерактивный элемент.
Имя Тип Описание activeboolean Активен.
-
setHitTolerance(hitTolerance)
-
Допуск при обнаружении попадания. Объекты в пределах радиуса вокруг указанной позиции проверяются на наличие.
Имя Тип Описание hitTolerancenumber Допуск попадания в пикселях.
-
setMap(map)
-
Удаляет интерактивный элемент с текущей карты, если она есть, и добавляет его на новую карту, если она указана. Передайте
null, чтобы только удалить интерактивный элемент с текущей карты.Имя Тип Описание mapMap | null Карта.
-
setProperties(values, silent) унаследовано
-
Задаёт набор пар «ключ-значение». Обратите внимание: этот метод изменяет существующие свойства и добавляет новые, но не удаляет существующие свойства.
Имя Тип Описание valuesPartial.<NoInfer.<Properties>> Значения.
silentboolean | undefined Обновить без вызова события.
-
toggleFeature(feature)
-
Пытается переключить состояние выделения объекта так, как если бы по нему щёлкнули и
toggleConditionимело значение True. В отличие от прямого измененияselect.getFeatures(), этот метод учитывает параметрыfilterиlayers(за исключениемmulti, который игнорируется). У событияSelectEvent, отправленного этим методом, не будет свойства mapBrowserEventИмя Тип Описание featureFeature Объект, с которого нужно снять выделение
-
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_Select-Select.html