OpenLayers.Control.ModifyFeature

Control to modify features.  When activated, a click renders the vertices of a feature - these vertices can then be dragged.  By default, the delete key will delete the vertex under the mouse.  New features are added by dragging “virtual vertices” between vertices.  Create a new control with the OpenLayers.Control.ModifyFeature constructor.

Inherits From

Summary
OpenLayers.Control.ModifyFeatureControl to modify features.
Properties
bySegment{Boolean} If set to true, one segment at a time will be editable (the one under the mouse cursor on hover).
documentDrag{Boolean} If set to true, dragging vertices will continue even if the mouse cursor leaves the map viewport.
geometryTypes{Array(String)} To restrict modification to a limited set of geometry types, send a list of strings corresponding to the geometry class names.
clickout{Boolean} Unselect features when clicking outside any feature.
toggle{Boolean} Unselect a selected feature on click.
standalone{Boolean} Set to true to create a control without SelectFeature capabilities.
deleteCodes{Array(Integer)} Keycodes for deleting verticies.
virtualStyle{Object} A symbolizer to be used for virtual vertices.
vertexRenderIntent{String} The renderIntent to use for vertices.
mode{Integer} Bitfields specifying the modification mode.
createVertices{Boolean} Create new vertices by dragging the virtual vertices in the middle of each edge.
onModificationStart{Function} Deprecated.
onModification{Function} Deprecated.
onModificationEnd{Function} Deprecated.
Constructor
OpenLayers.Control.ModifyFeatureCreate a new modify feature control.
Functions
destroyTake care of things that are not handled in superclass.
activateActivate the control.
deactivateDeactivate the control.
selectFeatureSelect a feature for modification in standalone mode.
unselectFeatureCalled when the select feature control unselects a feature.
Constants
RESHAPE{Integer} Constant used to make the control work in reshape mode
RESIZE{Integer} Constant used to make the control work in resize mode
ROTATE{Integer} Constant used to make the control work in rotate mode
DRAG{Integer} Constant used to make the control work in drag mode

Properties

bySegment

{Boolean} If set to true, one segment at a time will be editable (the one under the mouse cursor on hover).  This supports editing much larger geometries.  This requires the rbush library (https://github.com/mourner/rbush) for spatial indexing.  Default is false.

documentDrag

{Boolean} If set to true, dragging vertices will continue even if the mouse cursor leaves the map viewport.  Default is false.

geometryTypes

{Array(String)} To restrict modification to a limited set of geometry types, send a list of strings corresponding to the geometry class names.

clickout

{Boolean} Unselect features when clicking outside any feature.  Default is true.

toggle

{Boolean} Unselect a selected feature on click.  Default is true.

standalone

{Boolean} Set to true to create a control without SelectFeature capabilities.  Default is false.  If standalone is true, to modify a feature, call the selectFeature method with the target feature.  Note that you must call the unselectFeature method to finish feature modification in standalone mode (before starting to modify another feature).

deleteCodes

{Array(Integer)} Keycodes for deleting verticies.  Set to null to disable vertex deltion by keypress.  If non-null, keypresses with codes in this array will delete vertices under the mouse.  Default is 46 and 68, the ‘delete’ and lowercase ‘d’ keys.

virtualStyle

{Object} A symbolizer to be used for virtual vertices.

vertexRenderIntent

{String} The renderIntent to use for vertices.  If no virtualStyle is provided, this renderIntent will also be used for virtual vertices, with a fillOpacity and strokeOpacity of 0.3.  Default is null, which means that the layer’s default style will be used for vertices.

mode

{Integer} Bitfields specifying the modification mode.  Defaults to OpenLayers.Control.ModifyFeature.RESHAPE.  To set the mode to a combination of options, use the | operator.  For example, to allow the control to both resize and rotate features, use the following syntax

control.mode = OpenLayers.Control.ModifyFeature.RESIZE |
               OpenLayers.Control.ModifyFeature.ROTATE;

createVertices

{Boolean} Create new vertices by dragging the virtual vertices in the middle of each edge.  Default is true.

onModificationStart

{Function} Deprecated.  Register for “beforefeaturemodified” instead.  The “beforefeaturemodified” event is triggered on the layer before any modification begins.

Optional function to be called when a feature is selected to be modified.  The function should expect to be called with a feature.  This could be used for example to allow to lock the feature on server-side.

onModification

{Function} Deprecated.  Register for “featuremodified” instead.  The “featuremodified” event is triggered on the layer with each feature modification.

Optional function to be called when a feature has been modified.  The function should expect to be called with a feature.

onModificationEnd

{Function} Deprecated.  Register for “afterfeaturemodified” instead.  The “afterfeaturemodified” event is triggered on the layer after a feature has been modified.

Optional function to be called when a feature is finished being modified.  The function should expect to be called with a feature.

Constructor

OpenLayers.Control.ModifyFeature

Create a new modify feature control.

Parameters

layer{OpenLayers.Layer.Vector} Layer that contains features that will be modified.
options{Object} Optional object whose properties will be set on the control.

Functions

destroy

destroy: function()

Take care of things that are not handled in superclass.

activate

activate: function()

Activate the control.

Returns

{Boolean} Successfully activated the control.

deactivate

deactivate: function()

Deactivate the control.

Returns

{Boolean} Successfully deactivated the control.

selectFeature

selectFeature: function(feature)

Select a feature for modification in standalone mode.  In non-standalone mode, this method is called when a feature is selected by clicking.  Register a listener to the beforefeaturemodified event and return false to prevent feature modification.

Parameters

feature{OpenLayers.Feature.Vector} the selected feature.

unselectFeature

unselectFeature: function(feature)

Called when the select feature control unselects a feature.

Parameters

feature{OpenLayers.Feature.Vector} The unselected feature.

Constants

RESHAPE

{Integer} Constant used to make the control work in reshape mode

RESIZE

{Integer} Constant used to make the control work in resize mode

ROTATE

{Integer} Constant used to make the control work in rotate mode

DRAG

{Integer} Constant used to make the control work in drag mode

destroy: function()
Take care of things that are not handled in superclass.
activate: function()
Activate the control.
deactivate: function()
Deactivate the control.
selectFeature: function(feature)
Select a feature for modification in standalone mode.
unselectFeature: function(feature)
Called when the select feature control unselects a feature.
Create a new modify feature control.
Controls affect the display or behavior of the map.
{Object} A symbolizer to be used for virtual vertices.
Instances of OpenLayers.Layer.Vector are used to render vector data from a variety of sources.
Vector features use the OpenLayers.Geometry classes as geometry description.
Close