# Enhancements and Additions

## Dotless identifiers

Previously, objects generated by the library were given id properties with values that contained dots (e.g. "OpenLayers.Control.Navigation_2").  These same identifiers are also used for DOM elements in some case.  Though uncommon, a developer may want to access these elements with a CSS selector.  To facilitate this, we now always generate ids with underscore instead of dot.

Corresponding issues/pull requests:

 * https://github.com/openlayers/openlayers/pull/416

## Better support for analog scroll wheel

Removed rounding of zoom level for maps with fractionalZoom == true. So users with an OS and interface device with analog scroll support will now get smooth zooming.

Corresponding issues/pull requests:

 * https://github.com/openlayers/openlayers/pull/483
 
## Google v3 Layer

This release changes the way Google layers are integrated with OpenLayers. With this change, OpenLayers should be less fragile to changes of the GMaps API version, because no DOM elements inside the Google container need to be modified by OpenLayers any more.

Application developers should be aware that the Google Map of an `OpenLayers.Layer.Google.v3` instance is no longer added to the map's `viewPortDiv`. Instead, the `viewPortDiv` is added as Google Maps control to the Google map. This means that when switching base layers, the whole DOM structure below the map's `div` changes.

Corresponding issues/pull requests:

* https://github.com/openlayers/openlayers/pull/484

## Bing Layer

All requests to the Bing Maps service are now sent using the same protocol as the OpenLayers application using the Bing layer. For file:/// URIs, the http
protocol is used. A new config option `protocol` has been introduced to set the protocol to use for requests to the Bing Maps service. 'https:' should work fine, but the availability of tiles and attribution logo with the https protocol is not guaranteed. If in doubt, set `protocol` to 'http:'.

Corresponding issues/pull requests:

* http://github.com/openlayers/openlayers/pull/700

# Behavior Changes from Past Releases

## window.$ is no longer an alias for OpenLayers.Util.getElement
 
We do no longer create a global variable '$' when such a symbol isn't already
defined. Previous versions of OpenLayers would define '$' to be an alias for 
OpenLayers.Util.getElement. If your application requires window.$ to be defined 
in such a way you can either
 
* include deprecated.js in your custom build or as additional ressource in your
  HTML-file
* or you do the aliasing in your application code yourself:

    window.$ = OpenLayers.Util.getElement;
    
Corresponding issue/pull requests:

* https://github.com/openlayers/openlayers/pull/423

# New Options for Build Script

* add the contents of a file as a comment at the front of the build, for example, the output of 'git describe --tags' could be saved as a file and then included
* create build file as an AMD module

run 'build.py -h' for more details

Corresponding issue/pull requests:

* https://github.com/openlayers/openlayers/pull/528

# Different return type for OpenLayers.Format.WMSDescribeLayer

The return type of WMSDescribeLayer format's `read` method was different from the one of the VersionedOGC format superclass. So it was changed from an array to an object with a layerDescriptions property that holds the array. For backwards compatibility, the object still has a length property and 0, ..., n properties with the previous array values.
