Module: ol/interaction/Draw

ol/interaction/Draw


Classes

DrawEvent
Draw

Methods

import {createBox} from 'ol/interaction/Draw';

Create a geometryFunction that will create a box-shaped polygon (aligned with the coordinate system axes). Use this with the draw interaction and type: 'Circle' to return a box instead of a circle geometry.

Returns:
Function that draws a box-shaped polygon.

module:ol/interaction/Draw.createRegularPolygon(opt_sides, opt_angle){module:ol/interaction/Draw~GeometryFunction}

import {createRegularPolygon} from 'ol/interaction/Draw';

Create a geometryFunction for type: 'Circle' that will create a regular polygon with a user specified number of sides and start angle instead of a module:ol/geom/Circle~Circle geometry.

Name Type Description
sides number

Number of sides of the regular polygon. Default is 32.

angle number

Angle of the first point in counter-clockwise radians. 0 means East. Default is the angle defined by the heading from the center of the regular polygon to the current pointer position.

Returns:
Function that draws a polygon.

Type Definitions

GeometryFunction()

Function that takes an array of coordinates and an optional existing geometry and a projection as arguments, and returns a geometry. The optional existing geometry is the geometry that is returned when the function is called without a second argument.

LineCoordType{Array.<module:ol/coordinate~Coordinate>}

Coordinate type when drawing lines.

Options{Object}

Properties:
Name Type Argument Default Description
type module:ol/geom/GeometryType

Geometry type of the geometries being drawn with this instance.

clickTolerance number <optional>
6

The maximum distance in pixels between "down" and "up" for a "up" event to be considered a "click" event and actually add a point/vertex to the geometry being drawn. The default of 6 was chosen for the draw interaction to behave correctly on mouse as well as on touch devices.

features module:ol/Collection~Collection.<module:ol/Feature~Feature> <optional>

Destination collection for the drawn features.

source module:ol/source/Vector~VectorSource <optional>

Destination source for the drawn features.

dragVertexDelay number <optional>
500

Delay in milliseconds after pointerdown before the current vertex can be dragged to its exact position.

snapTolerance number <optional>
12

Pixel distance for snapping to the drawing finish. Must be greater than 0.

stopClick boolean <optional>
false

Stop click, singleclick, and doubleclick events from firing during drawing.

maxPoints number <optional>

The number of points that can be drawn before a polygon ring or line string is finished. By default there is no restriction.

minPoints number <optional>

The number of points that must be drawn before a polygon ring or line string can be finished. Default is 3 for polygon rings and 2 for line strings.

finishCondition module:ol/events/condition~Condition <optional>

A function that takes an module:ol/MapBrowserEvent~MapBrowserEvent and returns a boolean to indicate whether the drawing can be finished. Not used when drawing POINT or MULTI_POINT geometries.

style module:ol/style/Style~StyleLike <optional>

Style for sketch features.

geometryFunction module:ol/interaction/Draw~GeometryFunction <optional>

Function that is called when a geometry's coordinates are updated.

geometryName string <optional>

Geometry name to use for features created by the draw interaction.

condition module:ol/events/condition~Condition <optional>

A function that takes an module:ol/MapBrowserEvent~MapBrowserEvent and returns a boolean to indicate whether that event should be handled. By default module:ol/events/condition.noModifierKeys, i.e. a click, adds a vertex or deactivates freehand drawing.

freehand boolean <optional>
false

Operate in freehand mode for lines, polygons, and circles. This makes the interaction always operate in freehand mode and takes precedence over any freehandCondition option.

freehandCondition module:ol/events/condition~Condition <optional>

Condition that activates freehand drawing for lines and polygons. This function takes an module:ol/MapBrowserEvent~MapBrowserEvent and returns a boolean to indicate whether that event should be handled. The default is module:ol/events/condition.shiftKeyOnly, meaning that the Shift key activates freehand drawing.

wrapX boolean <optional>
false

Wrap the world horizontally on the sketch overlay.

Coordinate type when drawing points.

PolyCoordType{Array.<Array.<module:ol/coordinate~Coordinate>>}

Coordinate type when drawing polygons.

Types used for drawing coordinates.