This allows users to control whether 3d acceleration should be used or not:
Just like with plain web pages, having a stylesheet that sets a transform
on the map's layerContainerDiv will make OpenLayers use translate3d and
scale3d. When no such transform is set in the stylesheet, style.left and
style.top will be used, except for e.g. pinch zoom, where scaling is
needed.
In current Webkit browsers, having translate3d on svg child elements
causes the positioning from the layer not to be inherited by the vector
layer content.
The loadend event of an image is fired before the image is rendered. For
standard 256x256 tiles, this does not matter. But for singleTile layers on
large screens, rendering time needs to be considered. So we add a delay
that depends on the tile size. TODO: make the denominator configurable.
In addition to relying on removeBackBufferDelay, we can remove the
backbuffer earlier without flicker in an ontransitionend listener on the
last loaded tile.
OpenLayers.INCHES_PER_UNIT.m should equal
OpenLayers.INCHES_PER_UNIT.Meters, just like OpenLayers.INCHES_PER_UNIT.km
should equal OpenLayers.Inches_PER_UNIT.Kilometers. This confusion probably
comes from mixing International inches with US Survey inches when compiling
the unit conversion list (1 meter is 39.37007874 International inches, but
39.37 US Survey inches. It may not be obvious, but 'inches'/'Inch' in
OpenLayers means US Survey inch, and 'IInch' means International inch).
This change also fixes offsets caused by incorrect resolution calculations in
OpenLayers.Format.WMTSCapabilities.
The Bing REST api still returns HTTP urls in meta data even if
we hit the API over SSL. This replaces http:// with // to
avoid any SSL browser errors.
Default to replacing with // but can force http: or https: with the
protocol parameter
This avoids issues with Elements renderers, where the nodeFactory method
cannot find nodes while the map viewport is transitioning from the mapDiv
to the googleControl.
Because this method is called by OpenLayers.Function.bindAsEventListener,
which conditionally assigns window.event already, e cannot be null or
undefined here.