OpenLayers.Layer

Summary
OpenLayers.Layer
Properties
id{String}
name{String}
div{DOMElement}
opacity{Float} The layer’s opacity.
alwaysInRange{Boolean} If a layer’s display should not be scale-based, this should be set to true.
Constants
EVENT_TYPES{Array(String)} Supported application event types.
Properties
events{OpenLayers.Events}
map{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().
isBaseLayer{Boolean} Whether or not the layer is a base layer.
alpha{Boolean} The layer’s images have an alpha channel.
displayInLayerSwitcher{Boolean} Display the layer’s name in the layer switcher.
visibility{Boolean} The layer should be displayed in the map.
attribution{String} Attribution string, displayed when an OpenLayers.Control.Attribution has been added to the map.
inRange{Boolean} The current map resolution is within the layer’s min/max range.
imageOffset{OpenLayers.Pixel} For layers with a gutter, the image offset represents displacement due to the gutter.
options{Object} An optional object whose properties will be set on the layer.
eventListeners{Object} If set as an option at construction, the eventListeners object will be registered with OpenLayers.Events.on.
gutter{Integer} Determines the width (in pixels) of the gutter around image tiles to ignore.
projection{OpenLayers.Projection} or {String} Set in the layer options to override the default projection string this layer - also set maxExtent, maxResolution, and units if appropriate.
units{String} The layer map units.
scales{Array} An array of map scales in descending order.
resolutions{Array} A list of map resolutions (map units per pixel) in descending order.
maxExtent{OpenLayers.Bounds} The center of these bounds will not stray outside of the viewport extent during panning.
minExtent{OpenLayers.Bounds}
maxResolution{Float} Default max is 360 deg / 256 px, which corresponds to zoom level 0 on gmaps.
minResolution{Float}
numZoomLevels{Integer}
minScale{Float}
maxScale{Float}
displayOutsideMaxExtent{Boolean} Request map tiles that are completely outside of the max extent for this layer.
wrapDateLine{Boolean} #487 for more info.
transitionEffect{String} The transition effect to use when the map is panned or zoomed.
SUPPORTED_TRANSITIONS{Array} An immutable (that means don’t change it!)
Constructor
OpenLayers.Layer
Functions
destroyDestroy is a destructor: this is to alleviate cyclic references which the Javascript garbage cleaner can not take care of on its own.
clone
setNameSets the new layer name for this layer.
addOptions
onMapResizeThis function can be implemented by subclasses
redrawRedraws the layer.
moveTo
setMapSet the map property for the layer.
afterAddCalled at the end of the map.addLayer sequence.
removeMapJust as setMap() allows each layer the possibility to take a personalized action on being added to the map, removeMap() allows each layer to take a personalized action on being removed from it.
getImageSize{OpenLayers.Size} The size that the image should be, taking into account gutters.
setTileSizeSet the tile size based on the map size.
getVisibility{Boolean} The layer should be displayed (if in range).
setVisibilitySet the visibility flag for the layer and hide/show & redraw accordingly.
displayHide or show the Layer
calculateInRange{Boolean} The layer is displayable at the current map’s current resolution.
setIsBaseLayer
initResolutionsThis method’s responsibility is to set up the ‘resolutions’ array for the layer -- this array is what the layer will use to interface between the zoom levels of the map and the resolution display of the layer.
getResolution{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.
getExtent{OpenLayers.Bounds} A Bounds object which represents the lon/lat bounds of the current viewPort.
getZoomForExtent
getDataExtentCalculates the max extent which includes all of the data for the layer.
getResolutionForZoom
getZoomForResolution
getLonLatFromViewPortPx
getViewPortPxFromLonLatReturns a pixel location given a map location.
setOpacitySets the opacity for the entire layer (all images)
getZIndex{Integer} the z-index of this layer
setZIndex
adjustBoundsThis function will take a bounds, and if wrapDateLine option is set on the layer, it will return a bounds which is wrapped around the world.

Properties

id

{String}

name

{String}

div

{DOMElement}

opacity

{Float} The layer’s opacity.  Float number between 0.0 and 1.0.

alwaysInRange

{Boolean} If a layer’s display should not be scale-based, this should be set to true.  This will cause the layer, as an overlay, to always be ‘active’, by always returning true from the calculateInRange() function.

If not explicitly specified for a layer, its value will be determined on startup in initResolutions() based on whether or not any scale-specific properties have been set as options on the layer.  If no scale-specific options have been set on the layer, we assume that it should always be in range.

See #987 for more info.

Constants

EVENT_TYPES

{Array(String)} Supported application event types.  Register a listener for a particular event with the following syntax:

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

All event objects have at least the following properties

object{Object} A reference to layer.events.object.
element{DOMElement} A reference to layer.events.element.

Supported map event types

loadstartTriggered when layer loading starts.
loadendTriggered when layer loading ends.
loadcancelTriggered when layer loading is canceled.
visibilitychangedTriggered when layer visibility is changed.
moveTriggered when layer moves (triggered with every mousemove during a drag).
moveendTriggered when layer is done moving, object passed as argument has a zoomChanged boolean property which tells that the zoom has changed.

Properties

map

{OpenLayers.Map} This variable is set when the layer is added to the map, via the accessor function setMap().

isBaseLayer

{Boolean} Whether or not the layer is a base layer.  This should be set individually by all subclasses.  Default is false

alpha

{Boolean} The layer’s images have an alpha channel.  Default is false.

displayInLayerSwitcher

{Boolean} Display the layer’s name in the layer switcher.  Default is true.

visibility

{Boolean} The layer should be displayed in the map.  Default is true.

attribution

{String} Attribution string, displayed when an OpenLayers.Control.Attribution has been added to the map.

inRange

{Boolean} The current map resolution is within the layer’s min/max range.  This is set in OpenLayers.Map.setCenter whenever the zoom changes.

imageOffset

{OpenLayers.Pixel} For layers with a gutter, the image offset represents displacement due to the gutter.

options

{Object} An optional object whose properties will be set on the layer.  Any of the layer properties can be set as a property of the options object and sent to the constructor when the layer is created.

eventListeners

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

gutter

{Integer} Determines the width (in pixels) of the gutter around image tiles to ignore.  By setting this property to a non-zero value, images will be requested that are wider and taller than the tile size by a value of 2 x gutter.  This allows artifacts of rendering at tile edges to be ignored.  Set a gutter value that is equal to half the size of the widest symbol that needs to be displayed.  Defaults to zero.  Non-tiled layers always have zero gutter.

projection

{OpenLayers.Projection} or {String} Set in the layer options to override the default projection string this layer - also set maxExtent, maxResolution, and units if appropriate.  Can be either a string or an OpenLayers.Projection object when created -- will be converted to an object when setMap is called if a string is passed.

units

{String} The layer map units.  Defaults to ‘degrees’.  Possible values are ‘degrees’ (or ‘dd’), ‘m’, ‘ft’, ‘km’, ‘mi’, ‘inches’.

scales

{Array} An array of map scales in descending order.  The values in the array correspond to the map scale denominator.  Note that these values only make sense if the display (monitor) resolution of the client is correctly guessed by whomever is configuring the application.  In addition, the units property must also be set.  Use resolutions instead wherever possible.

resolutions

{Array} A list of map resolutions (map units per pixel) in descending order.  If this is not set in the layer constructor, it will be set based on other resolution related properties (maxExtent, maxResolution, maxScale, etc.).

maxExtent

{OpenLayers.Bounds} The center of these bounds will not stray outside of the viewport extent during panning.  In addition, if displayOutsideMaxExtent is set to false, data will not be requested that falls completely outside of these bounds.

maxResolution

{Float} Default max is 360 deg / 256 px, which corresponds to zoom level 0 on gmaps.  Specify a different value in the layer options if you are not using a geographic projection and displaying the whole world.

minResolution

{Float}

numZoomLevels

{Integer}

minScale

{Float}

maxScale

{Float}

displayOutsideMaxExtent

{Boolean} Request map tiles that are completely outside of the max extent for this layer.  Defaults to false.

wrapDateLine

{Boolean} #487 for more info.

transitionEffect

{String} The transition effect to use when the map is panned or zoomed.

There are currently two supported values

  • null No transition effect (the default).
  • resize Existing tiles are resized on zoom to provide a visual effect of the zoom having taken place immediately.  As the new tiles become available, they are drawn over top of the resized tiles.

SUPPORTED_TRANSITIONS

{Array} An immutable (that means don’t change it!) list of supported transitionEffect values.

Constructor

OpenLayers.Layer

Parameters

name{String} The layer name
options{Object} Hashtable of extra options to tag onto the layer

Functions

destroy

destroy: function(setNewBaseLayer)

Destroy is a destructor: this is to alleviate cyclic references which the Javascript garbage cleaner can not take care of on its own.

Parameters

setNewBaseLayer{Boolean} Set a new base layer when this layer has been destroyed.  Default is true.

clone

clone: function (obj)

Parameters

obj{OpenLayers.Layer} The layer to be cloned

Returns

{OpenLayers.Layer} An exact clone of this OpenLayers.Layer

setName

setName: function(newName)

Sets the new layer name for this layer.  Can trigger a changelayer event on the map.

Parameters

newName{String} The new name.

addOptions

addOptions: function (newOptions)

Parameters

newOptions{Object}

onMapResize

onMapResize: function()

This function can be implemented by subclasses

redraw

redraw: function()

Redraws the layer.  Returns true if the layer was redrawn, false if not.

Returns

{Boolean} The layer was redrawn.

moveTo

moveTo:function(bounds,
zoomChanged,
dragging)

Parameters

bound{OpenLayers.Bounds}
zoomChanged{Boolean} Tells when zoom has changed, as layers have to do some init work in that case.
dragging{Boolean}

setMap

setMap: function(map)

Set the map property for the layer.  This is done through an accessor so that subclasses can override this and take special action once they have their map variable set.

Here we take care to bring over any of the necessary default properties from the map.

Parameters

map{OpenLayers.Map}

afterAdd

afterAdd: function()

Called at the end of the map.addLayer sequence.  At this point, the map will have a base layer.  To be overridden by subclasses.

removeMap

removeMap: function(map)

Just as setMap() allows each layer the possibility to take a personalized action on being added to the map, removeMap() allows each layer to take a personalized action on being removed from it.  For now, this will be mostly unused, except for the EventPane layer, which needs this hook so that it can remove the special invisible pane.

Parameters

map{OpenLayers.Map}

getImageSize

getImageSize: function()

Returns

{OpenLayers.Size} The size that the image should be, taking into account gutters.

setTileSize

setTileSize: function(size)

Set the tile size based on the map size.  This also sets layer.imageSize and layer.imageOffset for use by Tile.Image.

Parameters

size{OpenLayers.Size}

getVisibility

getVisibility: function()

Returns

{Boolean} The layer should be displayed (if in range).

setVisibility

setVisibility: function(visibility)

Set the visibility flag for the layer and hide/show & redraw accordingly.  Fire event unless otherwise specified

Note that visibility is no longer simply whether or not the layer’s style.display is set to “block”.  Now we store a ‘visibility’ state property on the layer class, this allows us to remember whether or not we desire for a layer to be visible.  In the case where the map’s resolution is out of the layer’s range, this desire may be subverted.

Parameters

visible{Boolean} Whether or not to display the layer (if in range)

display

display: function(display)

Hide or show the Layer

Parameters

display{Boolean}

calculateInRange

calculateInRange: function()

Returns

{Boolean} The layer is displayable at the current map’s current resolution.  Note that if ‘alwaysInRange’ is true for the layer, this function will always return true.

setIsBaseLayer

setIsBaseLayer: function(isBaseLayer)

Parameters

isBaseLayer{Boolean}

initResolutions

initResolutions: function()

This method’s responsibility is to set up the ‘resolutions’ array for the layer -- this array is what the layer will use to interface between the zoom levels of the map and the resolution display of the layer.

The user has several options that determine how the array is set up.

For a detailed explanation, see the following wiki from the openlayers.org homepage: http://trac.openlayers.org/wiki/SettingZoomLevels

getResolution

getResolution: function()

Returns

{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.

getExtent

getExtent: function()

Returns

{OpenLayers.Bounds} A Bounds object which represents the lon/lat bounds of the current viewPort.

getZoomForExtent

getZoomForExtent: function(extent,
closest)

Parameters

bounds{OpenLayers.Bounds}
closest{Boolean} Find the zoom level that most closely fits the specified bounds.  Note that this may result in a zoom that does not exactly contain the entire extent.  Default is false.

Returns

{Integer} The index of the zoomLevel (entry in the resolutions array) for the passed-in extent.  We do this by calculating the ideal resolution for the given extent (based on the map size) and then calling getZoomForResolution(), passing along the ‘closest’ parameter.

getDataExtent

getDataExtent: function ()

Calculates the max extent which includes all of the data for the layer.  This function is to be implemented by subclasses.

Returns

{OpenLayers.Bounds}

getResolutionForZoom

getResolutionForZoom: function(zoom)

Parameter

zoom{Float}

Returns

{Float} A suitable resolution for the specified zoom.

getZoomForResolution

getZoomForResolution: function(resolution,
closest)

Parameters

resolution{Float}
closest{Boolean} Find the zoom level that corresponds to the absolute closest resolution, which may result in a zoom whose corresponding resolution is actually smaller than we would have desired (if this is being called from a getZoomForExtent() call, then this means that the returned zoom index might not actually contain the entire extent specified... but it’ll be close).  Default is false.

Returns

{Integer} The index of the zoomLevel (entry in the resolutions array) that corresponds to the best fit resolution given the passed in value and the ‘closest’ specification.

getLonLatFromViewPortPx

getLonLatFromViewPortPx: function (viewPortPx)

Parameters

viewPortPx{OpenLayers.Pixel}

Returns

{OpenLayers.LonLat} An OpenLayers.LonLat which is the passed-in view port OpenLayers.Pixel, translated into lon/lat by the layer.

getViewPortPxFromLonLat

getViewPortPxFromLonLat: function (lonlat)

Returns a pixel location given a map location.  This method will return fractional pixel values.

Parameters

lonlat{OpenLayers.LonLat}

Returns

{OpenLayers.Pixel} An OpenLayers.Pixel which is the passed-in OpenLayers.LonLat,translated into view port pixels.

setOpacity

setOpacity: function(opacity)

Sets the opacity for the entire layer (all images)

Parameter

opacity{Float}

getZIndex

getZIndex: function ()

Returns

{Integer} the z-index of this layer

setZIndex

setZIndex: function (zIndex)

Parameters

zIndex{Integer}

adjustBounds

adjustBounds: function (bounds)

This function will take a bounds, and if wrapDateLine option is set on the layer, it will return a bounds which is wrapped around the world.  We do not wrap for bounds which cross the maxExtent.left/right, only bounds which are entirely to the left or entirely to the right.

Parameters

bounds{OpenLayers.Bounds}
Instances of OpenLayers.Map are interactive maps embedded in a web page.
The attribution control adds attribution from layers to the map display.
This class represents a screen coordinate, in x and y coordinates
on: function(object)
Convenience method for registering listeners with a common scope.
Class for coordinate transforms between coordinate systems.
Contains convenience functions for string manipulation.
Instances of this class represent bounding boxes.
destroy: function(setNewBaseLayer)
Destroy is a destructor: this is to alleviate cyclic references which the Javascript garbage cleaner can not take care of on its own.
clone: function (obj)
setName: function(newName)
Sets the new layer name for this layer.
addOptions: function (newOptions)
onMapResize: function()
This function can be implemented by subclasses
redraw: function()
Redraws the layer.
moveTo:function(bounds,
zoomChanged,
dragging)
setMap: function(map)
Set the map property for the layer.
afterAdd: function()
Called at the end of the map.addLayer sequence.
removeMap: function(map)
Just as setMap() allows each layer the possibility to take a personalized action on being added to the map, removeMap() allows each layer to take a personalized action on being removed from it.
getImageSize: function()
{OpenLayers.Size} The size that the image should be, taking into account gutters.
Instances of this class represent a width/height pair
setTileSize: function(size)
Set the tile size based on the map size.
getVisibility: function()
{Boolean} The layer should be displayed (if in range).
setVisibility: function(visibility)
Set the visibility flag for the layer and hide/show & redraw accordingly.
display: function(display)
Hide or show the Layer
calculateInRange: function()
{Boolean} The layer is displayable at the current map’s current resolution.
setIsBaseLayer: function(isBaseLayer)
initResolutions: function()
This method’s responsibility is to set up the ‘resolutions’ array for the layer -- this array is what the layer will use to interface between the zoom levels of the map and the resolution display of the layer.
getResolution: function()
{Float} The currently selected resolution of the map, taken from the resolutions array, indexed by current zoom level.
getExtent: function()
{OpenLayers.Bounds} A Bounds object which represents the lon/lat bounds of the current viewPort.
getZoomForExtent: function(extent,
closest)
getDataExtent: function ()
Calculates the max extent which includes all of the data for the layer.
getResolutionForZoom: function(zoom)
getZoomForResolution: function(resolution,
closest)
getLonLatFromViewPortPx: function (viewPortPx)
getViewPortPxFromLonLat: function (lonlat)
Returns a pixel location given a map location.
setOpacity: function(opacity)
Sets the opacity for the entire layer (all images)
getZIndex: function ()
{Integer} the z-index of this layer
setZIndex: function (zIndex)
adjustBounds: function (bounds)
This function will take a bounds, and if wrapDateLine option is set on the layer, it will return a bounds which is wrapped around the world.
setCenter: function(lonlat,
zoom,
dragging,
forceZoomChange)
Set the map center (and optionally, the zoom level).
{Array} A list of map resolutions (map units per pixel) in descending order.
{Boolean} Request map tiles that are completely outside of the max extent for this layer.
This class represents a longitude and latitude pair
Close