类: 捕捉

ol/interaction/Snap~捕捉


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

在修改或绘制向量要素时处理捕捉操作。这些要素可以来自 VectorSourceCollection。任何允许用户使用鼠标与要素交互的交互对象,只要提前添加,均可从捕捉中受益。

捕捉交互会修改地图浏览器事件 coordinatepixel 的属性,以强制任何使用这些属性的交互发生捕捉。

示例:

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

const snap = new Snap({
  source: source
});

map.addInteraction(snap);

new Snap(options)

Name Type 描述
features Collection<Feature> | undefined

捕捉这些要素。应提供此选项或数据源。

source VectorSource | undefined

捕捉到此数据源中的要素。应提供此选项或要素。

edge boolean (defaults to true)

捕捉边缘。

vertex boolean (defaults to true)

捕捉到顶点。

intersection boolean (defaults to false)

捕捉线段交点。

pixelTolerance number (defaults to 10)

像素容差,用于在捕捉操作中判断指针是否足够接近线段或顶点。

segmenters Segmenters | undefined

自定义分段器Type默认情况下,采用以下分段器:

  • Point:一维线段(例如[[10, 20]])表示点。
  • LineString:一个二维线段(例如[[10, 20], [30, 40]]) 对于线串的每个线段。
  • Polygon:外环和内环的每一段均对应一个二维线段。
  • Circle规则多边形的每条边对应一个二维线段,该多边形由32个点构成以表示圆的周长。
  • GeometryCollection所包含几何体的所有线段。
  • MultiPoint每个点对应一条一维线段。
  • MultiLineString线串的每个线段均为二维线段。
  • MultiPolygon多边形的每个线段都是二维线段。
触发事件:

继承

可观察属性

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

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

方法

addFeature(feature, register)

将一个要素添加到可捕捉的要素集合中。

Name Type 描述
feature Feature

要素.

register boolean | undefined

是否监听要素变化 默认为true.

递增修订计数器并触发更改事件。

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

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

返回:
修订。

handleEvent(evt){boolean}

Name Type 描述
evt MapBrowserEvent

地图浏览器事件。

返回:
false 停止事件传播。

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

监听器函数

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

removeFeature(feature, unlisten)

从可捕捉的要素集合中移除一个要素。

Name Type 描述
feature Feature

要素

unlisten boolean | undefined

是否取消监听要素变化。默认为true.

set(key, value, silent) inherited

设置值。

Name Type 描述
key string

键名。

value *

值。

silent boolean | undefined

更新时不触发事件

启用或禁用交互。

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

取消设置而不触发事件。