ALKMaps.Handler.Path

Handler to draw a path on the map.  Path is displayed on mouse down, moves on mouse move, and is finished on mouse up.

Inherits from

Summary
ALKMaps.Handler.PathHandler to draw a path on the map.
Properties
line{ALKMaps.Feature.Vector}
maxVertices{Number} The maximum number of vertices which can be drawn by this handler.
doubleTouchTolerance{Number} Maximum number of pixels between two touches for the gesture to be considered a “finalize feature” action.
freehand{Boolean} In freehand mode, the handler starts the path on mouse down, adds a point for every mouse move, and finishes the path on mouse up.
freehandToggle{String} If set, freehandToggle is checked on mouse events and will set the freehand mode to the opposite of this.freehand.
timerId{Integer} The timer used to test the double touch.
redoStack{Array} Stack containing points removed with undo.
Constructor
ALKMaps.Handler.PathCreate a new path hander
Functions
createFeatureAdd temporary geometries
destroyFeatureDestroy temporary geometries
destroyPersistedFeatureDestroy the persisted feature.
removePointDestroy the temporary point.
addPointAdd point to geometry.
insertXYInsert a point in the current sketch given x & y coordinates.
insertDeltaXYInsert a point given offsets from the previously inserted point.
insertDirectionLengthInsert a point in the current sketch given a direction and a length.
insertDeflectionLengthInsert a point in the current sketch given a deflection and a length.
getCurrentPointIndex{Number} The index of the most recently drawn point.
undoRemove the most recently added point in the sketch geometry.
redoReinsert the most recently removed point resulting from an undo call.
freehandModeDetermine whether to behave in freehand mode or not.
modifyFeatureModify the existing geometry given the new point
drawFeatureRender geometries on the temporary layer.
getSketchReturn the sketch feature.
getGeometryReturn the sketch geometry.
touchstarthandle touchstart.
downHandle mousedown and touchstart.
moveHandle mousemove and touchmove.
upHandle mouseup and touchend.
finishGeometryFinish the geometry and send it back to the control.
dblclickHandle double-clicks.

Properties

maxVertices

{Number} The maximum number of vertices which can be drawn by this handler.  When the number of vertices reaches maxVertices, the geometry is automatically finalized.  Default is null.

doubleTouchTolerance

{Number} Maximum number of pixels between two touches for the gesture to be considered a “finalize feature” action.  Default is 20.

freehand

{Boolean} In freehand mode, the handler starts the path on mouse down, adds a point for every mouse move, and finishes the path on mouse up.  Outside of freehand mode, a point is added to the path on every mouse click and double-click finishes the path.

freehandToggle

{String} If set, freehandToggle is checked on mouse events and will set the freehand mode to the opposite of this.freehand.  To disallow toggling between freehand and non-freehand mode, set freehandToggle to null.  Acceptable toggle values are ‘shiftKey’, ‘ctrlKey’, and ‘altKey’.

timerId

{Integer} The timer used to test the double touch.

redoStack

{Array} Stack containing points removed with undo.

Constructor

ALKMaps.Handler.Path

Create a new path hander

Parameters

control{ALKMaps.Control} The control that owns this handler
callbacks{Object} An object with a properties whose values are functions.  Various callbacks described below.
options{Object} An optional object with properties to be set on the handler

Named callbacks

createCalled when a sketch is first created.  Callback called with the creation point geometry and sketch feature.
modifyCalled with each move of a vertex with the vertex (point) geometry and the sketch feature.
pointCalled as each point is added.  Receives the new point geometry.
doneCalled when the point drawing is finished.  The callback will receive a single argument, the linestring geometry.
cancelCalled when the handler is deactivated while drawing.  The cancel callback will receive a geometry.

Functions

createFeature

createFeature: function(pixel)

Add temporary geometries

Parameters

pixel{ALKMaps.Pixel} The initial pixel location for the new feature.

destroyFeature

destroyFeature: function(force)

Destroy temporary geometries

Parameters

force{Boolean} Destroy even if persist is true.

destroyPersistedFeature

destroyPersistedFeature: function()

Destroy the persisted feature.

removePoint

removePoint: function()

Destroy the temporary point.

addPoint

addPoint: function(pixel)

Add point to geometry.  Send the point index to override the behavior of LinearRing that disregards adding duplicate points.

Parameters

pixel{ALKMaps.Pixel} The pixel location for the new point.

insertXY

insertXY: function(x,
y)

Insert a point in the current sketch given x & y coordinates.  The new point is inserted immediately before the most recently drawn point.

Parameters

x{Number} The x-coordinate of the point.
y{Number} The y-coordinate of the point.

insertDeltaXY

insertDeltaXY: function(dx,
dy)

Insert a point given offsets from the previously inserted point.

Parameters

dx{Number} The x-coordinate offset of the point.
dy{Number} The y-coordinate offset of the point.

insertDirectionLength

insertDirectionLength: function(direction,
length)

Insert a point in the current sketch given a direction and a length.

Parameters

direction{Number} Degrees clockwise from the positive x-axis.
length{Number} Distance from the previously drawn point.

insertDeflectionLength

insertDeflectionLength: function(deflection,
length)

Insert a point in the current sketch given a deflection and a length.  The deflection should be degrees clockwise from the previously digitized segment.

Parameters

deflection{Number} Degrees clockwise from the previous segment.
length{Number} Distance from the previously drawn point.

getCurrentPointIndex

getCurrentPointIndex: function()

Returns

{Number} The index of the most recently drawn point.

undo

undo: function()

Remove the most recently added point in the sketch geometry.

Returns

{Boolean} A point was removed.

redo

redo: function()

Reinsert the most recently removed point resulting from an undo call.  The undo stack is deleted whenever a point is added by other means.

Returns

{Boolean} A point was added.

freehandMode

freehandMode: function(evt)

Determine whether to behave in freehand mode or not.

Returns

{Boolean}

modifyFeature

modifyFeature: function(pixel,
drawing)

Modify the existing geometry given the new point

Parameters

pixel{ALKMaps.Pixel} The updated pixel location for the latest point.
drawing{Boolean} Indicate if we’re currently drawing.

drawFeature

drawFeature: function()

Render geometries on the temporary layer.

getSketch

getSketch: function()

Return the sketch feature.

Returns

{ALKMaps.Feature.Vector}

getGeometry

getGeometry: function()

Return the sketch geometry.  If <multi> is true, this will return a multi-part geometry.

Returns

{ALKMaps.Geometry.LineString}

touchstart

touchstart: function(evt)

handle touchstart.

parameters

evt{event} the browser event

returns

{boolean} allow event propagation

down

down: function(evt)

Handle mousedown and touchstart.  Add a new point to the geometry and render it.  Return determines whether to propagate the event on the map.

Parameters

evt{Event} The browser event

Returns

{Boolean} Allow event propagation

move

move: function (evt)

Handle mousemove and touchmove.  Adjust the geometry and redraw.  Return determines whether to propagate the event on the map.

Parameters

evt{Event} The browser event

Returns

{Boolean} Allow event propagation

up

up: function (evt)

Handle mouseup and touchend.  Send the latest point in the geometry to the control.  Return determines whether to propagate the event on the map.

Parameters

evt{Event} The browser event

Returns

{Boolean} Allow event propagation

finishGeometry

finishGeometry: function()

Finish the geometry and send it back to the control.

dblclick

dblclick: function(evt)

Handle double-clicks.

Parameters

evt{Event} The browser event

Returns

{Boolean} Allow event propagation

Vector features use the ALKMaps.Geometry classes as geometry description.
undo: function()
Remove the most recently added point in the sketch geometry.
createFeature: function(pixel)
Add temporary geometries
destroyFeature: function(force)
Destroy temporary geometries
destroyPersistedFeature: function()
Destroy the persisted feature.
removePoint: function()
Destroy the temporary point.
addPoint: function(pixel)
Add point to geometry.
insertXY: function(x,
y)
Insert a point in the current sketch given x & y coordinates.
insertDeltaXY: function(dx,
dy)
Insert a point given offsets from the previously inserted point.
insertDirectionLength: function(direction,
length)
Insert a point in the current sketch given a direction and a length.
insertDeflectionLength: function(deflection,
length)
Insert a point in the current sketch given a deflection and a length.
getCurrentPointIndex: function()
{Number} The index of the most recently drawn point.
redo: function()
Reinsert the most recently removed point resulting from an undo call.
freehandMode: function(evt)
Determine whether to behave in freehand mode or not.
modifyFeature: function(pixel,
drawing)
Modify the existing geometry given the new point
drawFeature: function()
Render geometries on the temporary layer.
getSketch: function()
Return the sketch feature.
getGeometry: function()
Return the sketch geometry.
touchstart: function(evt)
handle touchstart.
down: function(evt)
Handle mousedown and touchstart.
move: function (evt)
Handle mousemove and touchmove.
up: function (evt)
Handle mouseup and touchend.
finishGeometry: function()
Finish the geometry and send it back to the control.
dblclick: function(evt)
Handle double-clicks.
Handler to draw a point on the map.
Controls affect the display or behavior of the map.
This class represents a screen coordinate, in x and y coordinates
A LineString is a Curve which, once two points have been added to it, can never be less than two points long.
Close