# 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

- OpenLayers.Control

Summary

OpenLayers.Control.ModifyFeature | Control to modify features.
Properties |
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.
layer | {OpenLayers.Layer.Vector}
feature | {OpenLayers.Feature.Vector} Feature currently available for modification.
vertex | {OpenLayers.Feature.Vector} Vertex currently being modified.
vertices | {Array(OpenLayers.Feature.Vector)} Verticies currently available for dragging.
virtualVertices | {Array(OpenLayers.Feature.Vector)} Virtual vertices in the middle of each edge.
handlers | {Object}
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.
modified | {Boolean} The currently selected feature has been modified.
radiusHandle | {OpenLayers.Feature.Vector} A handle for rotating/resizing a feature.
dragHandle | {OpenLayers.Feature.Vector} A handle for dragging a feature.
onModificationStart | {Function} Deprecated.
onModification | {Function} Deprecated.
onModificationEnd | {Function} Deprecated.
Constructor |
OpenLayers.Control.ModifyFeature | Create a new modify feature control.
Functions |
destroy | Take care of things that are not handled in superclass.
activate | Activate the control.
deactivate | Deactivate the control.
beforeSelectFeature | Called before a feature is selected.
selectFeature | Select a feature for modification in standalone mode.
unselectFeature | Called when the select feature control unselects a feature.
dragStart | Called by the drag handler before a feature is dragged.
dragVertex | Called by the drag handler with each drag move of a vertex.
dragComplete | Called by the drag handler when the feature dragging is complete.
setFeatureState | Called when the feature is modified.
resetVertices |
handleKeypress | Called by the feature handler on keypress.
collectVertices | Collect the vertices from the modifiable feature’s geometry and push them on to the control’s vertices array.
collectDragHandle | Collect the drag handle for the selected geometry.
collectRadiusHandle | Collect the radius handle for the selected geometry.
setMap | Set the map property for the control and all handlers.
handleMapEvents |
moveLayerToTop | Moves the layer for this handler to the top, so mouse events can reach it.
moveLayerBack | Moves the layer back to the position determined by the map’s layers array.
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

### 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).

### layer

{OpenLayers.Layer.Vector}

### feature

{OpenLayers.Feature.Vector} Feature currently available for modification.

### vertex

{OpenLayers.Feature.Vector} Vertex currently being modified.

### vertices

{Array(OpenLayers.Feature.Vector)} Verticies currently available for dragging.

### virtualVertices

{Array(OpenLayers.Feature.Vector)} Virtual vertices in the middle of each edge.

### handlers

{Object}

### 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.

### modified

{Boolean} The currently selected feature has been modified.

### radiusHandle

{OpenLayers.Feature.Vector} A handle for rotating/resizing a feature.

### dragHandle

{OpenLayers.Feature.Vector} A handle for dragging a feature.

### 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.

### beforeSelectFeature

> beforeSelectFeature: function( | feature | )

Called before a feature is selected.

#### Parameters

feature | {OpenLayers.Feature.Vector} The feature about to be selected.

### 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.

### dragStart

> dragStart: function( | feature | )

Called by the drag handler before a feature is dragged. This method is used to differentiate between points and vertices of higher order geometries.

#### Parameters

feature | {OpenLayers.Feature.Vector} The point or vertex about to be dragged.

### dragVertex

> dragVertex: function( | vertex,
> | pixel | )

Called by the drag handler with each drag move of a vertex.

#### Parameters

vertex | {OpenLayers.Feature.Vector} The vertex being dragged.
pixel | {OpenLayers.Pixel} Pixel location of the mouse event.

### dragComplete

> dragComplete: function( | vertex | )

Called by the drag handler when the feature dragging is complete.

#### Parameters

vertex | {OpenLayers.Feature.Vector} The vertex being dragged.

### setFeatureState

> setFeatureState: function()

Called when the feature is modified. If the current state is not INSERT or DELETE, the state is set to UPDATE.

### resetVertices

> resetVertices: function()

### handleKeypress

> handleKeypress: function( | evt | )

Called by the feature handler on keypress. This is used to delete vertices. If the <deleteCode> property is set, vertices will be deleted when a feature is selected for modification and the mouse is over a vertex.

#### Parameters

evt | {Event} Keypress event.

### collectVertices

> collectVertices: function()

Collect the vertices from the modifiable feature’s geometry and push them on to the control’s vertices array.

### collectDragHandle

> collectDragHandle: function()

Collect the drag handle for the selected geometry.

### collectRadiusHandle

> collectRadiusHandle: function()

Collect the radius handle for the selected geometry.

### setMap

> setMap: function( | map | )

Set the map property for the control and all handlers.

#### Parameters

map | {OpenLayers.Map} The control’s map.

### handleMapEvents

> handleMapEvents: function( | evt | )

#### Parameters

evt | {Object}

### moveLayerToTop

> moveLayerToTop: function()

Moves the layer for this handler to the top, so mouse events can reach it.

### moveLayerBack

> moveLayerBack: function()

Moves the layer back to the position determined by the map’s layers array.

### 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

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.

> destroy: function()

Take care of things that are not handled in superclass.

> activate: function()

Activate the control.

> deactivate: function()

Deactivate the control.

> beforeSelectFeature: function( | feature | )

Called before a feature is selected.

> selectFeature: function( | feature | )

Select a feature for modification in standalone mode.

> unselectFeature: function( | feature | )

Called when the select feature control unselects a feature.

> dragStart: function( | feature | )

Called by the drag handler before a feature is dragged.

> dragVertex: function( | vertex,
> | pixel | )

Called by the drag handler with each drag move of a vertex.

> dragComplete: function( | vertex | )

Called by the drag handler when the feature dragging is complete.

> setFeatureState: function()

Called when the feature is modified.

> resetVertices: function()

> handleKeypress: function( | evt | )

Called by the feature handler on keypress.

> collectVertices: function()

Collect the vertices from the modifiable feature’s geometry and push them on to the control’s vertices array.

> collectDragHandle: function()

Collect the drag handle for the selected geometry.

> collectRadiusHandle: function()

Collect the radius handle for the selected geometry.

> setMap: function( | map | )

Set the map property for the control and all handlers.

> handleMapEvents: function( | evt | )

> moveLayerToTop: function()

Moves the layer for this handler to the top, so mouse events can reach it.

> moveLayerBack: function()

Moves the layer back to the position determined by the map’s layers array.
Create a new modify feature control.
Controls affect the display or behavior of the map.
{Object} A symbolizer to be used for virtual vertices.
This class represents a screen coordinate, in x and y coordinates
Instances of OpenLayers.Map are interactive maps embedded in a web page.
Close