类: 绘图

ol/interaction/Draw~绘制


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

绘制要素几何的交互。

new Draw(options)

Name Type 描述
type Type

使用此实例绘制的几何体类型。

clickTolerance number (defaults to 6)

在“按下”和“释放”事件之间,用于将“释放”事件视为“单击”事件的最大像素距离,并实际向正在绘制的几何体添加点或顶点。默认为6选择此选项以确保绘制交互在鼠标和触摸设备上均能正确运行。

features Collection<Feature> | undefined

绘制要素的目标集合。

source VectorSource | undefined

绘制要素的目标数据源

dragVertexDelay number (defaults to 500)

指针按下事件后,在将当前顶点拖动至精确位置前的延迟时间(毫秒)。

snapTolerance number (defaults to 12)

绘图完成时捕捉的像素距离。必须大于0.

stopClick boolean (defaults to false)

在绘图过程中,阻止单击、单次单击和双击事件的触发。

maxPoints number | undefined

在完成多边形环或线串之前可以绘制的点数。默认情况下无限制。

minPoints number | undefined

在完成多边形环或线串之前必须绘制的点数。默认为3对于多边形环和2对于线串。

finishCondition Condition | undefined

一个接受参数的函数MapBrowserEvent并返回一个布尔值,指示绘图是否可完成。在绘制点或多点几何体时,此方法不适用。

style StyleLike | FlatStyleLike | undefined

草图特征的样式。绘制交互最多可包含三个草图特征,具体取决于模式。它总是包含一个要素,其中。Point与当前光标位置对应的几何。如果模式是LineStringPolygon,并且当至少存在一个绘制点时,它还将包含一个要素,其值为LineString对应于已绘制点与当前光标位置之间连线的几何。如果模式是Polygon,并且当至少有一个绘制的点时,它还将包含一个要素,其值为Polygon对应于由已绘制点与当前光标位置所构成的多边形的几何(注意:若仅绘制一个点,则该多边形仅有两个点)。如果模式是Circle,并且绘制了一个点,它还将包含一个要素,具有一个Circle几何图形的中心为绘制的点,半径由绘制的点与光标之间的距离确定。

geometryFunction GeometryFunction | undefined

当几何体坐标更新时调用的函数。

geometryName string | undefined

用于绘制交互创建的要素的几何名称。

condition Condition | undefined

一个接受...的函数MapBrowserEvent并返回一个布尔值,用于指示该事件是否应被处理。默认情况下noModifierKeys即单击,可添加顶点或停用徒手绘图。

freehand boolean (defaults to false)

在徒手模式下绘制直线、多边形和圆形。这将使交互始终以徒手模式运行,并优先于任何其他交互。freehandCondition配置项。

freehandCondition Condition | undefined

用于激活直线和多边形徒手绘制的条件。该函数需要一个MapBrowserEvent并返回一个布尔值,用于指示是否应处理该事件。默认值为shiftKeyOnly,表示 Shift 键激活自由绘制。

trace boolean | Condition (defaults to false)

跟踪另一几何体的一部分。徒手模式下忽略。

traceSource VectorSource | undefined

待跟踪要素的源。如果跟踪处于活动状态并且traceSource未提供交互source将会被使用。跟踪要求将交互配置为或一个traceSourcesource.

wrapX boolean (defaults to false)

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

geometryLayout GeometryLayout (defaults to 'XY')

由绘制交互创建的要素几何布局。

触发事件:

继承

可观察属性

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

true如果交互处于活动状态,false否则。

方法

abortDrawing()

停止绘制,但不将草图要素添加到目标图层。

appendCoordinates(coordinates)

将坐标追加到当前正在绘制的几何体末端。此操作适用于绘制线串或多边形时,坐标将追加至当前线串或多边形的外环。若未绘制任何几何体,则会创建一个新的几何体。

Name Type 描述
coordinates LineCoordType

将线性坐标附加到坐标数组。

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

dispatchEvent(event){boolean | undefined} inherited

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

Name Type 描述
event BaseEvent | string

事件对象。

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

extend(feature)

通过从现有几何图形启动绘制模式,该几何图形将接收新的附加点。这仅适用于具有 LineString 几何类型的要素,其中交互将通过向坐标数组末尾添加点来延伸线。这将修改原始要素,而非绘制副本。

该函数将触发 drawstart 事件。

Name Type 描述
feature Feature<LineString>

待扩展的要素。

停止绘制并将草图要素添加到目标图层。DRAWEND 事件在插入要素之前触发。

返回:
绘制的要素。

获取值。

Name Type 描述
key string

键名。

返回:
值。

返回交互当前是否激活。

返回:
交互激活时取 true,否则取 false

getFreehand(){boolean}

判断此交互是否处于徒手模式。

返回:
徒手绘制。

getKeys(){Array.<string>} inherited

获取对象属性名称列表。

返回:
属性名称列表。

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

返回:
地图.

获取此交互将草图要素渲染到的覆盖层。

返回:
覆盖物 图层.

getPointerCount(){number} inherited

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

返回:
指针数量

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

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

返回:
对象。

getRevision(){number} inherited

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

返回:
修订。

handleEvent(event){boolean}

处理 map browser event,并可能进行绘制或结束绘图。

Name Type 描述
event MapBrowserEvent<PointerEvent>

地图浏览器事件。

返回:
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

监听器函数。

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

removeLastPoint()

删除当前绘制要素的最后一个点。当绘制点(POINT)或多点(MULTI_POINT)几何图形时,不执行任何操作。

set(key, value, silent) inherited

设置值。

Name Type 描述
key string

键名。

value *

值。

silent boolean | undefined

更新而不触发事件。

激活或停用交互。

Name Type 描述
active boolean

活动。

setFreehand(freehand)

设置是否启用徒手绘图模式。

Name Type 描述
freehand 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

取消设置且不触发事件。