类:Modify

ol/interaction/Modify~修改


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

用于修改要素几何形状的交互。要修改已添加到现有数据源的要素,请使用 source 选项构造修改交互。如果要修改集合中的要素(例如,选择交互所使用的集合),请使用 features 选项构造交互。构造该交互时,必须指定 sourcefeatures 选项。

基于指针的笛卡尔距离用于判定需修改的要素。这意味着几何体仅在位于配置的 pixelTolerance 范围内时,才会被纳入修改考虑。对于点几何,可使用 hitDetection 选项来匹配其视觉表现。

默认情况下,当按下 alt 键时,交互将允许删除顶点。要配置具有不同删除条件的交互,请使用 deleteCondition 选项。

new Modify(options)

Name Type 描述
condition Condition | undefined

一个接受参数的函数MapBrowserEvent并返回一个布尔值,以指示该事件是否被视为向草图添加或移动顶点。默认为primaryAction.

deleteCondition Condition | undefined

一个函数,它接受一个MapBrowserEvent并返回一个布尔值,用于指示是否应处理该事件。默认情况下,singleClickaltKeyOnly导致顶点删除。这种组合是通过将两个条件检查封装在一个函数中处理的:

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选项

trace boolean | Condition (defaults to false)

追踪另一几何体的一部分。当两个相邻顶点被拖拽至追踪目标上时,追踪即开始,期间无其他修改。

traceSource VectorSource | undefined

用于跟踪的要素数据源。如果跟踪处于活动状态并且traceSource未提供交互source将被使用。跟踪要求交互配置为要么一个traceSource or a source.

wrapX boolean (defaults to false)

在草图叠加层上水平环绕世界。

snapToPointer boolean (defaults to !hitDetection)

在区域内点击时,被修改的顶点、点或线段将捕捉到指针坐标。pixelTolerance.

触发事件:

继承

可观察属性

Name Type 可设置 ObjectEvent type 描述
active boolean 是的 change:active

true如果交互已激活,false否则。

方法

canInsertPoint(){boolean}

检查点是否可以插入到当前线串或位于当前指针位置的面。

返回:
可在当前指针位置插入点。

canRemovePoint(){boolean}

检查是否可以在当前指针位置处从线串或多边形中删除点。

返回:
可在当前指针位置删除点。

递增修订计数器并分发“变更”事件。

dispatchEvent(event){boolean | undefined} inherited

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

Name Type 描述
event BaseEvent | string

事件对象。

返回:
false 如果任何人在事件对象上调用了 preventDefault 方法,或者任何监听器返回了 false。

获取一个值。

Name Type 描述
key string

键名

返回:
值。

返回交互当前是否处于激活状态。

返回:
如果交互已激活,则为 true;否则,则为 false

getKeys(){Array.<string>} inherited

获取对象属性名称列表。

返回:
属性名称列表。

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

返回:
地图.

获取该交互用于渲染修改点或顶点的覆盖层。

返回:
覆盖物 图层.

getPointerCount(){number} inherited

返回当前参与交互的指针数,例如当使用两个手指时,对应 2

返回:
指针的数量。

getProperties(){Object.<string, *>} inherited

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

返回:
对象。

getRevision(){number} inherited

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

返回:
修订。

insertPoint(coordinate){boolean}

将当前指针所指的顶点插入到当前的线串或多边形中。

Name Type 描述
coordinate Coordinate | undefined

如果提供了坐标,指针将被设置为该坐标;否则,将使用当前指针坐标。

返回:
已插入一个顶点。

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

侦听特定类型的事件。

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

返回:
监听器的唯一键。若以事件类型数组作为首个参数调用,则返回结果为键的数组。

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

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数

返回:
监听器的唯一键。若以事件类型数组作为首个参数调用,则返回键的数组。

removePoint(coordinate){boolean}

从当前线串或多边形中移除当前指向的顶点。

Name Type 描述
coordinate Coordinate | undefined

如果提供了指针坐标,则将其设置为指定坐标;否则,将使用当前指针坐标。

返回:
当顶点被移除时为真。

set(key, value, silent) inherited

设置值。

Name Type 描述
key string

键名。

value *

值。

silent boolean | undefined

在不触发事件的情况下更新。

setActive(active)

启用或禁用交互。

Name Type 描述
active boolean

激活的。

setProperties(values, silent) inherited

设置键值对集合。注意:此操作会修改现有属性并添加新属性,但不会删除任何现有属性。

Name Type 描述
values Object.<string, *>

值。

silent boolean | undefined

更新而不触发事件。

un(type, listener) inherited

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

Name Type 描述
type string | Array.<string>

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

listener function

监听器函数。

unset(key, silent) inherited

清除属性。

Name Type 描述
key string

键名

silent boolean | undefined

在不触发事件的情况下取消设置。