Class: Snap

ol/interaction/Snap~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 Description
features Collection<要素> | undefined

吸附到这些要素。应提供此选项或source。

source VectorSource | undefined

吸附到此数据源的要素。应提供此选项或features

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:各多边形的每个线段对应一个二维线段。
触发事件:

Extends

Observable Properties

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

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

Methods

add要素(feature, register)

向可吸附的要素集合中添加一个要素。

Name Type Description
feature 要素

要素。

register boolean | undefined

是否监听要素变更。默认为 true

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

dispatchEvent(event){boolean | undefined} inherited

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

Name Type Description
event BaseEvent | string

事件对象。

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

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

返回交互当前是否激活。

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

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回值:
属性名列表。

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

返回值:
地图。

getPointerCount(){number} inherited

返回当前参与交互的指针数量,例如使用两根手指时为 2

返回值:
The number of pointers.

getProperties(){NoInfer.<Properties>} inherited

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

返回值:
对象。

getRevision(){number} inherited

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

返回值:
版本号。

handleEvent(evt){boolean}

Name Type Description
evt MapBrowserEvent

地图浏览器事件。

返回值:
false 以停止事件传播。

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

监听器函数。

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

remove要素(feature, unlisten)

从可吸附的要素集合中移除一个要素。

Name Type Description
feature 要素

要素。

unlisten boolean | undefined

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

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

激活或停用交互。

Name Type Description
active boolean

是否激活。

setProperties(values, silent) inherited

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

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

值。

silent boolean | undefined

更新但不触发事件。

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

取消设置但不触发事件。