|Version 19 (modified by bartvde, 2 years ago)|
- We have improved mobile support, with a focus on touch devices.
- The map can now be dragged and zoomed via touch events.
- Features can be drawn, selected, modified, and dragged via touch events.
- For that we have extended existing handlers and controls to support touch events, and have added new touch-specific handlers and controls (Handler.Pinch, Control.PinchZoom, Control.TouchNavigation) to the library.
- Additional examples demonstrate how to integrate OpenLayers with libraries like Sencha Touch and jQuery Mobile
- Additional controls for HTML5 features like Geolocation
- Testing of OpenLayers behavior on a number of clients, large and small.
- The development script loader (lib/OpenLayers.js) is now fully compatible with FireFox 4
- Lots of performance improvements, focused on improving the user experience when dragging the map. The main changes:
- We now defer tile loading and give priority to user interaction with the map. #2998
- We overhauled the moveTo code path to avoid pixel to map units conversions while dragging the map. Because we cannot drag the GMaps v3 API in pixel space without triggering pan animation in GMaps, this improvement is only effective for maps that don't include OpenLayers.Layer.Google v3 layers. #3062
- To reduce the overhead of creating objects we have greatly optimized our Class implementation. #2889
- Pan while drawing. We have modified the drawing handlers to allow panning the map while drawing features on the map. #3052
- OpenLayers includes a new protocol implementing the JSONP technique to avoid the Same Origin Policy constraint of Ajax. #2956
- New OpenLayers.Layer.Bing for direct tile access to Bing Maps. It is recommended to use this new layer now instead of OpenLayers.Layer.VirtualEarth. #2975
- We've introduced "Kinetic Dragging" so the map can continue moving after the mouse is released. #2999
- The Canvas renderer now supports hit detection - allowing for point, line, and polygon drawing and editing on devices that don't support SVG/VML. #3207
- The new CQL format allows serializing and deserializing of filters using OGC Common Query Language. #2522
Overall, OpenLayers 2.11 offers greatly improved performance for all users. It offers broad mobile support, based in large part on sponsorship from a number of organizations during a code sprint in Switzerland (http://openlayers.org/blog/2011/02/25/mobile-sprint-day-five/), and as a side effect of this work, many components related to mobile support have been extended. This release promotes a major step forward for OpenLayers on mobile devices.
Behavior Changes from past releases
#2888: Vector layers no longer have the isVector property set. So code relying on isVector to test if a layer is a vector layer should be changed to using layer instanceof OpenLayers.Layer.Vector.
#2802: New SVG2 renderer. By default, OpenLayers still uses the SVG renderer, but the new one has several advantages:
- Features are not re-rendered on zoom level changes, which improves performance.
- During panning, features that pan in from the edges will immediately be visible.
- If you have many features outside the visible map viewport, the initial rendering pass will take longer than with the old SVG renderer, because all features are rendered.
- The new renderer will not work well in old browsers (e.g. Firefox 2.x).
To configure applications to use the new renderer, add the following code before creating any vector layers:
OpenLayers.Layer.Vector.prototype.renderers = ["SVG2", "VML", "Canvas"];
We would appreciate test feedback, to make sure that there are no remaining issues so we can make this new renderer the default in the 2.12 release.
#3261: The EXCEPTIONS parameter is no longer included in WMS GetMap requests. This means the server default will apply. According to the spec, exceptions will be returned as XML docs (application/vnd.ogc.se_xml). Previously, WMS layers were configured by default to request exceptions in-image (application/vnd.ogc.se_inimage).
#1633: AnchoredBubble and Marker are no longer automatically included in the build. If you use the createPopup function you must add OpenLayers/Popup/AnchoredBubble.js to the build configuration file. If you use the createMarker function you must add OpenLayers/Marker.js.