A map is made of layers, a view to visualize them, interactions to modify map content and controls with UI components.


The view manages the visual parameters of the map view, like resolution or rotation.

ol.View with center, projection, resolution and rotation

Layers are lightweight containers that get their data from sources.

ControlsInteractionsSources and formats
Map default controls
All controls
Map default interactions
Interactions for vector features All interactions
Tile sources for ol.layer.Tile
Image sources for ol.layer.Image
Vector sources for ol.layer.Vector
Vector tile sources for ol.layer.VectorTile
Formats for reading/writing vector data
ProjectionsObservable objectsOther components

All coordinates and extents need to be provided in view projection (default: EPSG:3857). To transform, use ol.proj.transform() and ol.proj.transformExtent().


Changes to all ol.Objects can be observed by calling the object.on('propertychange') method. Listeners receive an ol.Object.Event with information on the changed property and old value.



API change policy

The OpenLayers API consists of

  • names and signatures of constructors
  • names and signatures of instance methods and properties
  • names and signatures of functions
  • names of constants

Within a major release series, the API will not be changed. Any changes to the API will be accompanied by a new major release.

Note: The API change policy does not cover CSS class names that are used to style the OpenLayers UI.

Note for Closure Compiler users compiling their application code together with OpenLayers: The names of types other than those in the list above (e.g. ol.Coordinate) are subject to change. It is therefore recommended to either use the resolved type as listed in the API docs (e.g. Array.<number> instead of ol.Coordinate), or pay attention to the upgrade notes, which will list the changes for those types.