OpenLayers 2 is outdated. Go to the latest 3.x version:

OpenLayers 3

This page aims to organize ideas around the next major version of OpenLayers. General goals for 3.0 are discussed here. Detailed proposals should be organized in their own pages (under the 'three' category).


General goals for OpenLayers 3 are described below.


The library should be written using coding patterns and syntax that reduces the overall size of the library. This includes reducing dependencies (and inheritance) where not strictly necessary and considering patterns that allow for better minimization (through obfuscation) by increasing the use of private members. While the aim is to allow for smaller builds, compact syntax should not compromise code readability.


Map dragging should be optimized. Evaluate methods for improving performance of basic map navigation options including delayed or asynchronous event firing and limiting the number of elements with browser event listeners.

Cleaner API

Some decisions about the OpenLayers API were made early on in the development of the library. Subsequent work and experience has highlighted aspects of the API that deserve clean up. Some of these are already marked in the code as FIXME 3.0 or similar.

Separate UI from Core

The library core should minimize generation of DOM elements that represent visual UI components.

The core should focus on the following:

  • layer management - tile handling & vector rendering
  • map & layer related event handling
  • server/client communication - generating requests and parsing responses
  • geometry digitization & editing

A separate OpenLayers UI lib should focus on the following:

  • rendering of buttons and other widgets
  • presenting map information that is not rendered as features (layer properties, feature attributes)
  • gathering user input for map configuration, queries, etc.


Specific proposals for the 3.0 release should be described in separate pages. Pages named like three/foo will be listed here.


Where it makes sense to include patches or describe ideas in tickets, create a ticket targeted at the 3.0 Milestone. Those tickets will be listed here.

improved popups
Implement Google API on top of OpenLayers
Add Ability to Hide/Show() BaseLayer
comb through the code and fix all the "TBD 3.0" commented issues
Remove 'url' param from OpenLayers.Tile
store evt on handler
add property isOnTop to Layer
Add ability to navigate in the time dimension for layers
Switch Control
OpenLayers.Util.pagePosition should return OpenLayers.Pixel
*featureadded* event for DrawFeature control
Format.GML: parse srsName
Move Sizing of OverviewMap and LayerSwitchers' Hide/Show Buttons to CSS
remove style property in favor of symbolizers
remove context from Rule and Style
support more information on feature attributes
allow different properties on map and layers
have more consistent naming conventions for events
move OpenLayers.Util.indexOf to OpenLayers.Array.indexOf
have consistent writing of URL versus Url throughout the library
Format read should return an object with a features array
Deprecate the theme map option
remove deprecated Control.MouseDefaults
remove deprecated Control.MouseToolbar
commercial API layers should only be accessible via sphericalMercator?
control.handler and control.handlers
create protocol for WM(T)S GetFeatureInfo
Refactor Layer.Grid into separate Grid class
deprecate '$' function
getParameters does not deal correctly with duplicate parameter names
Impossible to put a Google layer over a standard layer
Create a ProviderApi class to handle embedding of BYGO map provider APIs
constructor for Scale Control differs from normal controls
remove OpenLayers.Control.PanZoom
Resizing map causes markers to shift relative to VirtualEarth layer
remove OpenLayers.Map.TILE_WIDTH and OpenLayers.Map.TILE_HEIGHT

Last modified 8 months ago Last modified on May 20, 2016 1:25:18 AM