Class: Draw

ol/interaction/Draw~Draw


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

绘制要素几何对象的交互。

new Draw(options)

Name Type Description
type Type

此实例绘制的几何图形的类型。

clickTolerance number (defaults to 6)

"down"和"up"之间的最大像素距离,用于将"up"事件视为"click"事件并 实际向正在绘制的几何图形添加点/顶点。默认值6是为了使绘制交互 在鼠标和触摸设备上都能正常工作。

features Collection<要素> | undefined

已绘制要素的目标集合。

source VectorSource | undefined

已绘制要素的目标数据源。

dragVertexDelay number (defaults to 500)

指针按下后延迟的毫秒数,之后当前顶点可拖动到精确位置。

snapTolerance number (defaults to 12)

吸附到绘制结束点的像素距离。必须大于0

stopClick boolean (defaults to false)

在绘制过程中阻止 click、singleclick 和 doubleclick 事件触发。

maxPoints number | undefined

在多边形环或线段完成之前可以绘制的点数。默认没有限制。

minPoints number | undefined

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

finishCondition Condition | undefined

一个函数,接受 MapBrowserEvent并返回一个布尔值, 指示是否可以完成绘制。绘制 POINT 或 MULTI_POINT 几何图形时不使用。

style StyleLike | FlatStyleLike | undefined

草图要素的样式。绘制交互最多可以有三个草图要素,具体取决于模式。 它始终包含一个具有Point几何图形的要素,对应于当前光标位置。 如果模式是LineStringPolygon,且至少有一个已绘制的点,它还将包含一个具有 LineString几何图形的要素,对应于已绘制点与当前光标位置之间的线。 如果模式是Polygon,且至少有一个已绘制的点,它还将包含一个具有Polygon 几何图形的要素,对应于已绘制点与当前光标位置之间的多边形 (注意:如果只绘制了一个点,此多边形只有两个点)。 如果模式是Circle,且已绘制了一个点,它还将包含一个具有Circle几何图形的要素, 其圆心为已绘制的点,半径由已绘制点与光标之间的距离决定。

geometry函数 Geometry函数 | 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')

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

触发事件:

Extends

Observable Properties

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

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

Methods

abortDrawing()

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

appendCoordinates(coordinates)

将坐标追加到当前正在绘制的几何图形末尾。这可用于绘制 LineString 或 Polygon。 坐标将被追加到当前 LineString 或当前 Polygon 的外环。如果没有正在绘制的几何图形,将创建一个新的。

Name Type Description
coordinates LineCoordType

要追加到坐标数组的线性坐标。

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

dispatchEvent(event){boolean | undefined} inherited

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

Name Type Description
event BaseEvent | string

事件对象。

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

extend(feature)

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

此函数将分发drawstart事件。

Name Type Description
feature 要素<LineString>

要延伸的要素。

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

返回值:
已绘制的要素。

获取一个值。

Name Type Description
key string

键名。

返回值:
值。

返回交互当前是否激活。

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

getFreehand(){boolean}

获取此交互是否处于手绘模式。

返回值:
是否手绘模式。

getKeys(){Array.<string>} inherited

获取对象属性名列表。

返回值:
属性名列表。

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

返回值:
地图。

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

返回值:
覆盖物图层。

getPointerCount(){number} inherited

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

返回值:
指针数量。

getProperties(){NoInfer.<Properties>} inherited

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

返回值:
对象。

getRevision(){number} inherited

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

返回值:
版本号。

handleEvent(event){boolean}

处理地图浏览器事件,可能会实际绘制或完成绘制。

Name Type Description
event MapBrowserEvent<PointerEvent>

地图浏览器事件。

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

监听器函数。

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

removeLastPoint()

移除当前正在绘制的要素的最后一个点。绘制 POINT 或 MULTI_POINT 几何图形时不执行任何操作。

set(key, value, silent) inherited

设置一个值。

Name Type Description
key string

键名。

value *

值。

silent boolean | undefined

更新但不触发事件。

激活或停用交互。

Name Type Description
active boolean

是否激活。

setFreehand(freehand)

设置是否以手绘模式进行绘制。

Name Type Description
freehand 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

取消设置但不触发事件。