99 lines
5.7 KiB
Markdown
99 lines
5.7 KiB
Markdown
# Behavior Changes from Past Releases
|
|
|
|
## Function return values
|
|
|
|
[Previously][prev] a few functions in the library displayed error messages and returned `undefined`, `null` or `false` if the parameters passed in were bad. In 2.12 these functions now just throw an error/exception. People relying on return values to know if a function call is successful may need to change their code. Here are the modified functions:
|
|
|
|
* `OpenLayers.Bounds.add` throws a `TypeError` exception if `x` or `y` is null
|
|
* `OpenLayers.LonLat.add` throws a `TypeError` exception if `lon` or `lat` is null
|
|
* `OpenLayers.Pixel.add` throws a `TypeError` exception if `x` or `y` is null
|
|
* `OpenLayers.Filter.Comparison.value2regex` throws an `Error` exception if `wildcard` equals to `"."`
|
|
* `OpenLayers.Layer.PointTrack.addNodes` throws a `TypeError` exception if `endPoint` isn't actually a point
|
|
* `OpenLayers.Layer.Vector.getFeatureFromEvent` throws an `Error` exception if the layer has no renderer
|
|
|
|
[prev]: https://github.com/openlayers/openlayers/commit/6e9a3e4c13e00c29daf28efd92b63c2390e69231
|
|
|
|
## Changes in formats WMTSCapabilities and SOSCapabilities
|
|
|
|
The structure of the object returned by `Format.WMTSCapabilities:read` and `Format.SOSCapabilities:read` has slightly changed.
|
|
|
|
For `WMTSCapabilities` the GET href used to be made available at `operationsMetadata.GetCapabilities.dcp.http.get`, the latter is now an array of objects with two properties: `url` and `constrains`. People using `operationsMetadata.GetCapabilities.dcp.http.get` in their applications should certainly use `operationsMetadata.GetCapabilities.dcp.http.get[0].url`.
|
|
|
|
Likewise for `SOSCapabilities`.
|
|
|
|
Looking at the tests is a good way to understand what the requires changes are. See [SOSCapabilities/v1_0_0.html](https://github.com/openlayers/openlayers/blob/master/tests/Format/SOSCapabilities/v1_0_0.html) and [WMTSCapabilities/v1_0_0.html](https://github.com/openlayers/openlayers/blob/master/tests/Format/WMTSCapabilities/v1_0_0.html).
|
|
|
|
* Trac ticket: http://trac.osgeo.org/openlayers/ticket/3568
|
|
* GitHub issue: https://github.com/openlayers/openlayers/pull/40
|
|
|
|
|
|
## Rico deprecation
|
|
|
|
We are deprecating the Rico classes/objects in OpenLayers. This has the following implications:
|
|
|
|
`Popup.AnchoredBubble` is deprecated. Its constructor now displays a deprecation message on the console. If you want popups with rounded corners either use `Popup.FramedClould`, or use `Popup.Anchored` and round corners using the [border-radius](https://developer.mozilla.org/en/CSS/border-radius) CSS property.
|
|
|
|
The `roundedCorner` option of `Control.LayerSwitcher` is deprecated, and it now defaults to `false`. Setting it to true results in deprecation messages being output on the console. If you still want to set `roundedCorner` to `true` (you should not!) you need to make sure that the Rico/Corner.js and Rico/Color.js scripts are loaded in the page. This can be ensured by adding Rico/Corner.js in the build profile. The controls.html example demonstrates how to use `border-radius` to round corners of a layer switcher:
|
|
|
|
|
|
olControlLayerSwitcher .layersDiv {
|
|
border-radius: 10px 0 0 10px;
|
|
}
|
|
|
|
See more detail in the Rico deprecation [pull request](https://github.com/openlayers/openlayers/pull/99).
|
|
|
|
In future releases we intend to move the Rico and `AnchoredBubble` code into deprecated.js. You really should consider stop using Rico-based functionalities in your applications.
|
|
|
|
## Changes in Geometry
|
|
|
|
The base `OpenLayers.Geometry` class no longer depends on `OpenLayers.Format.WKT` or `OpenLayers.Feature.Vector`. If you want to make use of the `OpenLayers.Geometry.fromWKT` method, you must explicitly include the OpenLayers/Format/WKT.js file in your build.
|
|
|
|
Without the WKT format included (by default), the `OpenLayers.Geometry::toString` method now returns "[object Object]." Previously, it returned the Well-Known Text representation of the geometry. To maintain the previous behavior, include the OpenLayers/Format/WKT.js file in your build.
|
|
|
|
## Deprecated Components
|
|
|
|
A number of constructors have been marked as deprecated for multiple releases in the 2.x series. For the 2.12 release this deprecated functionality has been moved to a separate deprecated.js file. If you use any of the constructors or methods below, you will have to explicitly include the deprecated.js file in your build (or add it in a separate `<script>` tag after OpenLayers.js).
|
|
|
|
* OpenLayers.Class.isPrototype
|
|
* OpenLayers.Class.create
|
|
* OpenLayers.Class.inherit
|
|
* OpenLayers.Util.clearArray
|
|
* OpenLayers.Util.setOpacity
|
|
* OpenLayers.Util.safeStopPropagation
|
|
* OpenLayers.Util.getArgs
|
|
* OpenLayers.nullHandler
|
|
* OpenLayers.loadURL
|
|
* OpenLayers.parseXMLString
|
|
* OpenLayers.Ajax.* (all methods)
|
|
* OpenLayers.Element.hide
|
|
* OpenLayers.Element.show
|
|
* OpenLayers.Element.getDimensions
|
|
* OpenLayers.Tile.prototype.getBoundsFromBaseLayer
|
|
* OpenLayers.Control.MouseDefaults
|
|
* OpenLayers.Control.MouseToolbar
|
|
* OpenLayers.Layer.Grid.prototype.getGridBounds
|
|
* OpenLayers.Format.XML.prototype.concatChildValues
|
|
* OpenLayers.Layer.WMS.Post
|
|
* OpenLayers.Layer.WMS.Untiled
|
|
* OpenLayers.Layer.MapServer.Untiled
|
|
* OpenLayers.Tile.WFS
|
|
* OpenLayers.Feature.WFS
|
|
* OpenLayers.Layer.WFS
|
|
* OpenLayers.Layer.MultiMap
|
|
* OpenLayers.Layer.VirtualEarth
|
|
* OpenLayers.Protocol.SQL
|
|
* OpenLayers.Protocol.SQL.Gears
|
|
* OpenLayers.Layer.Yahoo
|
|
* OpenLayers.Layer.GML
|
|
|
|
In addition, OpenLayers no longer modifies any native prototypes or objects by default. If you rely on any of the following, you'll need to include deprecated.js explicitly to get the same behavior.
|
|
|
|
* String.prototype.startsWith
|
|
* String.prototype.contains
|
|
* String.prototype.trim
|
|
* String.prototype.camelize
|
|
* Function.prototype.bind
|
|
* Function.prototype.bindAsEventListener
|
|
* Event.stop
|
|
|