Controls affect the display or behavior of the map. They allow everything from panning and zooming to displaying a scale indicator. Controls by default are added to the map they are contained within however it is possible to add a control to an external div by passing the div in the options parameter.
The following example shows how to add many of the common controls to a map.
var map = new OpenLayers.Map('map', { controls: [] }); map.addControl(new OpenLayers.Control.PanZoomBar()); map.addControl(new OpenLayers.Control.LayerSwitcher({'ascending':false})); map.addControl(new OpenLayers.Control.Permalink()); map.addControl(new OpenLayers.Control.Permalink('permalink')); map.addControl(new OpenLayers.Control.MousePosition()); map.addControl(new OpenLayers.Control.OverviewMap()); map.addControl(new OpenLayers.Control.KeyboardDefaults());
The next code fragment is a quick example of how to intercept shift-mouse click to display the extent of the bounding box dragged out by the user. Usually controls are not created in exactly this manner. See the source for a more complete example:
var control = new OpenLayers.Control(); OpenLayers.Util.extend(control, { draw: function () { // this Handler.Box will intercept the shift-mousedown // before Control.MouseDefault gets to see it this.box = new OpenLayers.Handler.Box( control, {"done": this.notice}, {keyMask: OpenLayers.Handler.MOD_SHIFT}); this.box.activate(); }, notice: function (bounds) { OpenLayers.Console.userError(bounds); } }); map.addControl(control);
OpenLayers.
|
Controls affect the display or behavior of the map. |
Properties | |
div | {DOMElement} The element that contains the control, if not present the control is placed inside the map. |
type | {Number} Controls can have a ‘type’. |
title | {string} This property is used for showing a tooltip over the Control. |
autoActivate | {Boolean} Activate the control when it is added to a map. |
active | {Boolean} The control is active (read-only). |
eventListeners | {Object} If set as an option at construction, the eventListeners object will be registered with OpenLayers.Events.on. |
events | {OpenLayers.Events} Events instance for listeners and triggering control specific events. |
Constructor | |
OpenLayers.
|
Create an OpenLayers Control. |
Functions | |
activate | Explicitly activates a control and it’s associated handler if one has been set. |
deactivate | Deactivates a control and it’s associated handler if any. |
Constants | |
OpenLayers.
|
|
OpenLayers.
|
|
OpenLayers.
|
{Number} Controls can have a ‘type’. The type determines the type of interactions which are possible with them when they are placed in an OpenLayers.Control.Panel.
{Boolean} The control is active (read-only). Use activate and deactivate to change control state.
{Object} If set as an option at construction, the eventListeners object will be registered with OpenLayers.Events.on. Object structure must be a listeners object as shown in the example for the events.on method.
{OpenLayers.Events} Events instance for listeners and triggering control specific events.
control.events.register(type, obj, listener);
Listeners will be called with a reference to an event object. The properties of this event depends on exactly what happened.
object | {Object} A reference to control.events.object (a reference to the control). |
element | {DOMElement} A reference to control.events.element (which will be null unless documented otherwise). |
activate | Triggered when activated. |
deactivate | Triggered when deactivated. |
Convenience method for registering listeners with a common scope.
on: function( object )
Explicitly activates a control and it’s associated handler if one has been set.
activate: function ()
Deactivates a control and it’s associated handler if any.
deactivate: function ()