Class: Select

ol/interaction/Select~Select


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

用于选择矢量要素的交互。默认情况下,选中的要素会以不同的样式显示,因此此交互可用于视觉高亮显示,以及选择要素进行其他操作(如修改或输出)。有三种方式控制选择哪些要素:使用由 condition 定义以及可选的 toggleadd/removemulti 选项指定的浏览器事件;layers 过滤器;以及使用 filter 选项的进一步要素过滤器。

new Select(options)

Name Type Description
addCondition Condition | undefined

接受 MapBrowserEvent 并返回布尔值以指示是否应处理该事件的函数。默认为 never。如果要使用不同的事件进行添加和移除而不是 toggle,请使用此选项。

condition Condition | undefined

接受 MapBrowserEvent 并返回布尔值以指示是否应处理该事件的函数。这是针对整体选中要素的事件。默认为 singleClick。点击要素将选中该要素并移除之前选中的要素。点击要素外部将移除所有选中。参见 toggleaddremove 选项以添加/移除额外要素到/从选中项。

layers Array<Layer> | function | undefined

应从中选择要素的图层列表。或者,可以提供过滤函数。该函数将为地图中的每个图层调用,对于希望可选择的图层应返回 true。如果未提供此选项,所有可见图层将被视为可选择。

style StyleLike | null | undefined

选中要素的样式。默认使用默认编辑样式(参见 Style)。如果此交互不应为选中要素应用任何样式更改,请设置为 null。如果设置为假值,选中要素的样式将不会更改。

removeCondition Condition | undefined

接受 MapBrowserEvent 并返回布尔值以指示是否应处理该事件的函数。默认为 never。如果要使用不同的事件进行添加和移除而不是 toggle,请使用此选项。

toggleCondition Condition | undefined

接受 MapBrowserEvent 并返回布尔值以指示是否应处理该事件的函数。这是对 condition 事件的补充。默认为 shiftKeyOnly,即按下 shift 以及 condition 事件,如果要素当前未被选中则添加到当前选中项,如果已选中则移除。如果要使用不同的事件而不是切换,请参见 addremove

multi boolean (defaults to false)

决定默认行为是仅选择单个要素还是点击地图位置处所有(重叠)要素的布尔值。默认值 false 表示单选。

features Collection<要素> | undefined

Collection where the interaction will place selected features. Optional. If not set the interaction will create a collection. In any case the collection used by the interaction is returned by getFeatures.

filter Filter函数 | undefined

接受 要素Layer 并在要素可被选中时返回 true,否则返回 false 的函数。

hitTolerance number (defaults to 0)

命中检测容差。将检查给定位置半径内的像素是否有要素。

触发事件:

Extends

Observable Properties

Name Type Settable ObjectEvent type Description
active boolean yes change:active

如果交互处于激活状态则为true,否则为false

Methods

增加修订计数器并分发 'change' 事件。

clearSelection()

Deselect all features as if a user deselected them. Compared to select.getFeatures().clear() this causes a SelectEvent。 The SelectEvent fired by this won't have a mapBrowserEvent property

deselect要素(feature){boolean}

Try to deselect a feature as if it was clicked. Compared to select.getFeatures().remove(feature) this causes a SelectEvent。 The SelectEvent fired by this won't have a mapBrowserEvent property

Name Type Description
feature 要素

要取消选择的要素

返回值:
如果the feature was deselected

dispatchEvent(event){boolean | undefined} inherited

分发事件并调用所有监听此类型事件的监听器。事件参数可以是一个字符串或一个 具有 type 属性的对象。

Name Type Description
event BaseEvent | string

事件对象。

返回值:
如果有人在事件对象上调用了 preventDefault 或任何监听器返回 false,则返回 false

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

返回交互当前是否激活。

返回值:
true 表示交互处于活动状态,否则为 false

获取选中的要素。

返回值:
要素s collection.

getHitTolerance(){number}

返回命中检测容差。

返回值:
以像素为单位的命中容差。

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回值:
属性名列表。

返回选中要素关联的矢量图层

Name Type Description
feature 要素

要素

返回值:
图层。

获取与此交互关联的地图。

返回值:
地图。

getProperties(){NoInfer.<Properties>} inherited

获取包含所有属性名和值的对象。

返回值:
对象。

getRevision(){number} inherited

获取此对象的版本号。 每次对象被修改时,其版本号将递增。

返回值:
版本号。

on(type, listener){EventsKey | Array<EventsKey>} inherited

监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

once(type, listener){EventsKey | Array<EventsKey>} inherited

仅监听一次特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

返回值:
监听器的唯一键。如果第一个参数是事件类型数组,则返回键的数组。

select要素(feature){boolean}

尝试选择一个要素,就像点击了它且 addCondition 评估为 true。与直接修改 select.getFeatures() 不同,此方法遵循 filter 和 layers 选项(除了 multi,它被忽略)。此方法触发的 SelectEvent 不会有 mapBrowserEvent 属性。

Name Type Description
feature 要素

要选择的要素

返回值:
如果the feature was selected

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

激活或停用交互。

Name Type Description
active boolean

是否激活。

setHitTolerance(hitTolerance)

命中检测容差。给定位置半径内的像素将被检查是否包含要素。

Name Type Description
hitTolerance number

命中容差(像素)。

从当前地图(如果有)移除交互,并附加到新地图(如果有)。传递 null 仅从当前地图移除交互。

Name Type Description
map Map | null

地图。

setProperties(values, silent) inherited

设置一组键值对。 注意,这会更改任何现有属性并添加新属性(不会移除任何现有属性)。

Name Type Description
values Partial.<NoInfer.<Properties>>

值。

silent boolean | undefined

更新但不触发事件。

toggle要素(feature)

尝试切换选择一个要素,就像点击了它且 toggleCondition 为 true。与直接修改 select.getFeatures() 不同,此方法遵循 filter 和 layers 选项(除了 multi,它被忽略)。此方法触发的 SelectEvent 不会有 mapBrowserEvent 属性。

Name Type Description
feature 要素

要取消选择的要素

un(type, listener) inherited

取消监听特定类型的事件。

Name Type Description
type string | Array.<string>

事件类型或事件类型数组。

listener function

监听器函数。

unset(key, silent) inherited

取消设置一个属性。

Name Type Description
key string

键名。

silent boolean | undefined

取消设置但不触发事件。