OpenLayers.Control.GetFeature

Gets vector features for locations underneath the mouse cursor.  Can be configured to act on click, hover or dragged boxes.  Uses an OpenLayers.Protocol that supports spatial filters to retrieve features from a server and fires events that notify applications of the selected features.

Inherits from

Summary
OpenLayers.Control.GetFeatureGets vector features for locations underneath the mouse cursor.
Properties
protocol{OpenLayers.Protocol} Required.
multipleKey{String} An event modifier (‘altKey’ or ‘shiftKey’) that temporarily sets the multiple property to true.
toggleKey{String} An event modifier (‘altKey’ or ‘shiftKey’) that temporarily sets the toggle property to true.
modifiers{Object} The event modifiers to use, according to the current event being handled by this control’s handlers
multiple{Boolean} Allow selection of multiple geometries.
click{Boolean} Use a click handler for selecting/unselecting features.
single{Boolean} Tells whether select by click should select a single feature.
clickout{Boolean} Unselect features when clicking outside any feature.
toggle{Boolean} Unselect a selected feature on click.
clickTolerance{Integer} Tolerance for the filter query in pixels.
hover{Boolean} Send feature requests on mouse moves.
box{Boolean} Allow feature selection by drawing a box.
maxFeatures{Integer} Maximum number of features to return from a query in single mode if supported by the protocol.
features{Object} Hash of {OpenLayers.Feature.Vector}, keyed by fid, holding the currently selected features
handlerOptions{Object} Additional options for the handlers used by this control.
handlers{Object} Object with references to multiple OpenLayers.Handler instances.
hoverResponse{OpenLayers.Protocol.Response} The response object associated with the currently running hover request (if any).
filterType{String} The type of filter to use when sending off a request.
events{OpenLayers.Events} Events instance for listeners and triggering control specific events.
Constructor
OpenLayers.Control.GetFeatureCreate a new control for fetching remote features.
Functions
activateActivates the control.
deactivateDeactivates the control.
selectClickCalled on click
selectBoxCallback from the handlers.box set up when box selection is on
selectHoverCallback from the handlers.hover set up when hover selection is on
cancelHoverCallback from the handlers.hover set up when hover selection is on
requestSends a GetFeature request to the WFS
selectBestFeatureSelects the feature from an array of features that is the best match for the click position.
setModifiersSets the multiple and toggle modifiers according to the current event
selectAdd feature to the hash of selected features and trigger the featureselected and featuresselected events.
hoverSelectSets/unsets the <hoverFeature>
unselectRemove feature from the hash of selected features and trigger the featureunselected event.
unselectAllUnselect all selected features.
setMapSet the map property for the control.
pixelToBoundsTakes a pixel as argument and creates bounds after adding the clickTolerance.

Properties

protocol

{OpenLayers.Protocol} Required.  The protocol used for fetching features.

multipleKey

{String} An event modifier (‘altKey’ or ‘shiftKey’) that temporarily sets the multiple property to true.  Default is null.

toggleKey

{String} An event modifier (‘altKey’ or ‘shiftKey’) that temporarily sets the toggle property to true.  Default is null.

modifiers

{Object} The event modifiers to use, according to the current event being handled by this control’s handlers

multiple

{Boolean} Allow selection of multiple geometries.  Default is false.

click

{Boolean} Use a click handler for selecting/unselecting features.  If both click and box are set to true, the click handler takes precedence over the box handler if a box with zero extent was selected.  Default is true.

single

{Boolean} Tells whether select by click should select a single feature.  If set to false, all matching features are selected.  If set to true, only the best matching feature is selected.  This option has an effect only of the click option is set to true.  Default is true.

clickout

{Boolean} Unselect features when clicking outside any feature.  Applies only if click is true.  Default is true.

toggle

{Boolean} Unselect a selected feature on click.  Applies only if click is true.  Default is false.

clickTolerance

{Integer} Tolerance for the filter query in pixels.  This has the same effect as the tolerance parameter on WMS GetFeatureInfo requests.  Will be ignored for box selections.  Applies only if click or hover is true.  Default is 5.  Note that this not only affects requests on click, but also on hover.

hover

{Boolean} Send feature requests on mouse moves.  Default is false.

box

{Boolean} Allow feature selection by drawing a box.  If set to true set click to false to disable the click handler and rely on the box handler only, even for “zero extent” boxes.  See the description of the click option for additional information.  Default is false.

maxFeatures

{Integer} Maximum number of features to return from a query in single mode if supported by the protocol.  This set of features is then used to determine the best match client-side.  Default is 10.

features

{Object} Hash of {OpenLayers.Feature.Vector}, keyed by fid, holding the currently selected features

handlerOptions

{Object} Additional options for the handlers used by this control.  This is a hash with the keys “click”, “box” and “hover”.

handlers

{Object} Object with references to multiple OpenLayers.Handler instances.

hoverResponse

{OpenLayers.Protocol.Response} The response object associated with the currently running hover request (if any).

filterType

{String} The type of filter to use when sending off a request.  Possible values: OpenLayers.Filter.Spatial.<BBOX|INTERSECTS|WITHIN|CONTAINS> Defaults to: OpenLayers.Filter.Spatial.BBOX

events

{OpenLayers.Events} Events instance for listeners and triggering control specific events.

Register a listener for a particular event with the following syntax

control.events.register(type, obj, listener);

Supported event types (in addition to those from OpenLayers.Control.events)

beforefeatureselectedTriggered when click is true before a feature is selected.  The event object has a feature property with the feature about to select
featureselectedTriggered when click is true and a feature is selected.  The event object has a feature property with the selected feature
beforefeaturesselectedTriggered when click is true before a set of features is selected.  The event object is an array of feature properties with the features about to be selected.  Return false after receiving this event to discontinue processing of all featureselected events and the featuresselected event.
featuresselectedTriggered when click is true and a set of features is selected.  The event object is an array of feature properties of the selected features
featureunselectedTriggered when click is true and a feature is unselected.  The event object has a feature property with the unselected feature
clickoutTriggered when when click is true and no feature was selected.
hoverfeatureTriggered when hover is true and the mouse has stopped over a feature
outfeatureTriggered when hover is true and the mouse moves moved away from a hover-selected feature

Constructor

OpenLayers.Control.GetFeature

Create a new control for fetching remote features.

Parameters

options{Object} A configuration object which at least has to contain a protocol property (if not, it has to be set before a request is made)

Functions

activate

activate: function ()

Activates the control.

Returns

{Boolean} The control was effectively activated.

deactivate

deactivate: function ()

Deactivates the control.

Returns

{Boolean} The control was effectively deactivated.

selectClick

selectClick: function(evt)

Called on click

Parameters

evt{OpenLayers.Event}

selectBox

selectBox: function(position)

Callback from the handlers.box set up when box selection is on

Parameters

position{<OpenLayers.Bounds>|Object} An OpenLayers.Bounds or an object with a ‘left’, ‘bottom’, ‘right’ and ‘top’ properties.

selectHover

selectHover: function(evt)

Callback from the handlers.hover set up when hover selection is on

Parameters

evt{Object} event object with an xy property

cancelHover

cancelHover: function()

Callback from the handlers.hover set up when hover selection is on

request

request: function(bounds,
options)

Sends a GetFeature request to the WFS

Parameters

bounds{OpenLayers.Bounds} bounds for the request’s BBOX filter
options{Object} additional options for this method.

Supported options include

single{Boolean} A single feature should be returned.  Note that this will be ignored if the protocol does not return the geometries of the features.
hover{Boolean} Do the request for the hover handler.

selectBestFeature

selectBestFeature: function(features,
clickPosition,
options)

Selects the feature from an array of features that is the best match for the click position.

Parameters

features{Array(OpenLayers.Feature.Vector)}
clickPosition{OpenLayers.LonLat}
options{Object} additional options for this method

Supported options include

hover{Boolean} Do the selection for the hover handler.

setModifiers

setModifiers: function(evt)

Sets the multiple and toggle modifiers according to the current event

Parameters

evt{OpenLayers.Event}

select

select: function(features)

Add feature to the hash of selected features and trigger the featureselected and featuresselected events.

Parameters

features{OpenLayers.Feature.Vector} or an array of features

hoverSelect

hoverSelect: function(feature)

Sets/unsets the <hoverFeature>

Parameters

feature{OpenLayers.Feature.Vector} the feature to hover-select.  If none is provided, the current <hoverFeature> will be nulled and the outfeature event will be triggered.

unselect

unselect: function(feature)

Remove feature from the hash of selected features and trigger the featureunselected event.

Parameters

feature{OpenLayers.Feature.Vector}

unselectAll

unselectAll: function()

Unselect all selected features.

setMap

setMap: function(map)

Set the map property for the control.

Parameters

map{OpenLayers.Map}

pixelToBounds

pixelToBounds: function(pixel)

Takes a pixel as argument and creates bounds after adding the clickTolerance.

Parameters

pixel{OpenLayers.Pixel}
Abstract vector layer protocol class.
{Boolean} Allow selection of multiple geometries.
{Boolean} Unselect a selected feature on click.
{OpenLayers.Protocol} Required.
Vector features use the OpenLayers.Geometry classes as geometry description.
Base class to construct a higher-level handler for event sequences.
Protocols return Response objects to their users.
Contains convenience functions for string manipulation.
activate: function ()
Activates the control.
deactivate: function ()
Deactivates the control.
selectClick: function(evt)
Called on click
selectBox: function(position)
Callback from the handlers.box set up when box selection is on
{Boolean} Allow feature selection by drawing a box.
selectHover: function(evt)
Callback from the handlers.hover set up when hover selection is on
{Boolean} Send feature requests on mouse moves.
cancelHover: function()
Callback from the handlers.hover set up when hover selection is on
request: function(bounds,
options)
Sends a GetFeature request to the WFS
selectBestFeature: function(features,
clickPosition,
options)
Selects the feature from an array of features that is the best match for the click position.
setModifiers: function(evt)
Sets the multiple and toggle modifiers according to the current event
select: function(features)
Add feature to the hash of selected features and trigger the featureselected and featuresselected events.
hoverSelect: function(feature)
Sets/unsets the hoverFeature
unselect: function(feature)
Remove feature from the hash of selected features and trigger the featureunselected event.
unselectAll: function()
Unselect all selected features.
setMap: function(map)
Set the map property for the control.
pixelToBounds: function(pixel)
Takes a pixel as argument and creates bounds after adding the clickTolerance.
{Integer} Tolerance for the filter query in pixels.
Controls affect the display or behavior of the map.
{Boolean} Use a click handler for selecting/unselecting features.
{OpenLayers.Events} Events instance for listeners and triggering control specific events.
Utility functions for event handling.
Instances of this class represent bounding boxes.
This class represents a longitude and latitude pair
Instances of OpenLayers.Map are interactive maps embedded in a web page.
This class represents a screen coordinate, in x and y coordinates
Close