wiki:Release/2.7/Notes

OpenLayers 2.7 Release Notes

As of 2.7-RC1, the OpenLayers 2.7 release closes 183 outstanding tickets.

Major features of this new release are:

  • Vector-Behavior (Strategies, Protocols, Filters, etc)
  • Improved Vector rendering for better performance
  • Canvas rendering class
  • Z-Ordering and Y-Ordering for Vector layers
  • New OpenLayers.Request interface for AJAX
  • Smarter Popups

... and tons of other new features and bug fixes are all listed below.

New features

  • New XMLHTTPRequest interface: OpenLayers.Request makes doing all the AJAX calls (GET,POST,PUT,DELETE,OPTIONS,HEAD) simpler and more intuitive. See Request for detailed information. (r7335 / #1565)
  • Class-management functions added to OpenLayers.Element class: hasClass(), addClass(), removeClass(), and toggleClass() all make it easier for users to manage/manipulate the css classes attributed to DOMElements. (r7579 / #1607)
  • ZoomPanel and PanPanel controls: Essentially these are new css-ified versions of the PanZoom control, making it infinitely easier for users to add their own, customized panning and zooming controls (#1400)
  • Keyboard handler works in Safari (#1292)
  • Added new Basic Measurement Control (#1241)
  • NavigationHistory control now uses css sprites technique for rendering (#1555)
  • Added a 'beforefeatureselected' event to the vector layer (#1427)
  • Overview map now supports different projections. (#1620)
  • Events:
    • Right-clicks (and double right-clicks -- zoom out) can now be configured on the map by setting the 'handleRightClicks' property on the Navigation control. (#1359)
    • Dramatic speed improvements to getMousePosition() (#1459)
  • Feature.Vector:
    • Added move() APIMethod to the Feature.Vector class to easily allow for the displacement of vector features. (#1362)
  • Format:
    • New! Format.GPX class allows for parsing of GPX-formatted files into linear features. (#1272)
    • Format.GML:
      • Added versioned GML Parsing. (#1639)
      • GML Parsing now supports gml-specific attributes. (#1328)
      • Adding support to the GML parser for serializing OpenLayers.Bounds as gml:Box. This gives the filter format (and the SLD format) the ability to write spatial filters (that have bounds as a value). (#1543)
    • Format.SLD:
      • Users can now specify stroke style of features. (#1126)
      • Added a filter format for version 1.0.0 filter encoding. (#1605)
      • Added support for TextSymbolizer. (#1542)
    • Format.WMC:
      • Implemented 'queryable' functionality. (#1447)
      • Now reads metadata URLs. (#1452)
    • Format.XML: Added readers and writers properties. (#1722)
  • Languages:
  • Handler.Feature: Made more robust to things that are related to changing layer order on the map. (#1628)
  • Sketch Handler: Added 'persist' and 'multi' properties. (#1698)
  • Layer:
    • Added a 'moveend' event to the Layer's events list. (#1678)
    • Added 'alwaysInRange' property to allow layers to never turn off based on the zoom level. See below for change from 2.6 that this implies.(#987)
    • Layer.GeoRSS now stores the title and description attributes on the created OpenLayers.Feature object for later access by applications. (#1485)
    • Layer.VirtualEarth: We now support the latest versions (5, 6.1) of the API. (#1540)
    • Layer.Vector:
      • Added featureremoved-type events. (#1535)
      • Added getDataExtent(). (#1369)
  • Map
    • Added 'olMap' and 'olMapViewPort' css class name with default 0 zIndex/padding/margin and 'text-align: left' (respectively) to ensure proper behaviour. See below for change from 2.6 that this implies. (#1635) (#1179) (#1116)
    • panTo() now uses tween if new center is in the current bounds + a ratio (#1341)
    • 'closest' parameter exposed in zoomToExtent() and zoomToScale(). (#1250)
    • Added getUnits() method. (#1591)
  • Added scale() method to OpenLayers.Bounds" (takes a ratio and an optional center). (#1341)
  • Popup:
    • Now use new features of getRenderedDimensions() to more accurately auto-size. (#1500)
    • Now automatically resize if their [img tag] contents change. (#1469)
    • Auto-Sizing code bubbled out into APIMethod updateSize() to allow for better interactivity. (#1708)
  • Renderer:
    • New Renderer.Canvas class! (#1512)
    • New vector rendering for better performance and less renderer specific limitations. (#1675, #1656, #1631, #1431, #1709)
    • Z-Ordering and Y-Ordering of vector elements! (#1357)
    • Added new graphicName symbolizer property, which allows to render well-known graphic symbols named "square", "cross", "x" and "triangle", in addition to the existing "circle". (#1398)
    • Added new strokeDashstyle symbolizer property. Both SVG's stroke-dasharray and VML's dashstyle syntax is supported. (#1126)
    • Implemented rotation of externalGraphic vector point features. (#1433)
  • Util:
    • getRenderedDimensions() improved to account for a css class on the containing div for the HTML content. (#1500)
    • extend() and applyDefaults() now allow undefined first arg. (#1564)
  • Tile.WFS: support non-XML vector formats. (#1575)
  • Image Loading: Can now be configured to use different server when IMAGE_RELOAD_ATTEMPTS > 1 (#1291)
  • Control.Permalink: Made more configurable by adding an argParserClass property and decomposed the logic for generating the key-value pairs from the div and link generation. (#1489)
  • Moved all alert()s in the library to a single OpenLayers.Console.userError() function, allowing for easy overriding of this function to report errors at an application level (or hiding them entirely). (#1651)
  • Add OpenLayers.String.isNumeric method. (#1441)
  • StyleMap: context can now be given as argument in addUniqueValueRules() allowing user to access to properties that are not part of the feature attributes. (#1548)
  • Added BBOX, Fixed, Clustering, and Paging Strategies (#1606, among others)

Bugs Fixed

  • Firebug fixed for FF3 (#1594)
  • No more duplicate DOMElement id's for controls. All controls' divs' ids are set according to their control id's (#1396). Also, those control id's can now have a custom id specified in the 'options' parameter (#1687).
  • Cursor is 'move' instead of 'default' when dragging a feature. (#1637)
  • Modify feature control now silently removes features/vertices. (#1562)
  • Fix linestring editing when two points are at the same position. (#1533)
  • register() method no longer failing on OpenLayers.Events object if Array.prototype is overloaded by 3rd party library. (#1502)
  • Vector features with no geometries are now cloneable. (#1557)
  • Format:
    • Format.GeoJSON now parses features with null geometries. (#1145)
    • Format.GeoRSS :
      • No longer fails on large line/poly nodes in FF. (#1614)
      • Speedup for getChildValue(). (#1600)
    • Format.SLD: PointSymbolizer Size is no longer misinterpreted. (#1545)
    • Format.WKT: No longer reprojects geometrycollection components twice. (#1554)
    • Format.XML: No longer depend on exceptions for parsing. 3x speed up of parsing in FF. (#1642)
    • Format.KML: KML styles no longer extracted when extractStyles is false. (#1576)
  • Clear bounds of geometries when reprojecting. (#1658)
  • Handler:
    • Handler.Box:
      • Take css borders into account when drawing the box. (#1593)
      • always set style.left and style.top, so lost events won't result in an incorrect box any more. (#1579)
    • Handler.RegularPolygon: New RegularPolygon features can now be invisible. (#1577)
    • Handler.Feature:
      • No longer uses getFeatureFromEvent on mousemove without hover callbacks. See below for change from 2.6 that this implies. (#1655)
      • Apects of dragging a box control no longer fail when letting go over a feature. (#1293)
  • Layer:
    • 'minScale' and 'maxScale' properties no longer ignored if 'scales' array set on map. (#1199)
    • Layers subclassing FixedZoomLevels (Google, Yahoo, VE, etc) now take into account the 'maxZoomLevel' property. (#1182)
    • Layer.GeoRSS: No longer triggers 'loadstart' twice. (#1580)
    • Layer.Google: ow displays in correct position when it was originally loaded as the not default layer, or if the map is resized while the google layer is hidden. (#830)
    • Layer.Grid: uses layer's 'maxExtent' instead of the maps in laying out the tiles. (#1552)
    • Layer.MapGuide:
      • Layer now gets correctly set up and reports correct co-ordinates. (#1511)
      • Adjust how the parameters are calculated for the GETVISIBLEMAPEXTENT call for overlays so that existing parameters are safely overwritten with the required parameters for this call. (#1647)
    • Layer.Text:
      • 'loadstart' now only fired once. (#1696)
      • Now allows icon offset of 0,0. (#1467)
      • Icons no longer created with NaN, NaN coordinates (#1571)
    • Layer.Vector:
      • Fixed typo in destroy(). (#1659)
      • Fixed flicker in SVG in FF2. (#1390)
      • Allow destroy() to be called twice without failing. (#1697)
      • Now destroys itself before its parent. (#1536)
      • Fixed bug where feature redrawn offscreen stays invisible by handling of unrenderedFeatures from moveTo to drawFeature. (#1723)
      • Fixed VML rendering's drawing of geometries when coordinate numbers are very high (#1732)
    • Layer.VirtualEarth:
      • Added missing VE zoom level. (#1181)
    • Layer.WFS: SRS sent with WFS requests now matches projection of requested extents. (#1537)
    • Layer.TMS: Added missing @requires statement for Tile/Image.js (#1733)
  • Map:
    • panTo() no longer executes if called on same center... eliminating vector flicker. (#1507)
    • zoomToMaxExtent() and getMaxExtent() now smarter if a 'restrictedExtent' property is set on the map. (#1134)
  • Renderer:
    • Renderer.Elements:
      • Geometry.Collection taken into account when erasing geometries. (#1621)
      • Fixed event handling and rendering of graphicName symbols for Safari and Opera. (#1653)
    • Renderer.SVG: Changed the default cursor for vector features from "" to "inherit" because FF3 complains about "". (#1595)
    • Renderer.VML:
      • Made coordsize positive for vector renderers -- fixes erratic behavior and speeds up rendering. (#1157)
      • No longer set the cursor to "inherit". (#1624)
  • Tile.Image: Refactored backBuffer tile code out of generic Tile base class into Tile.Image to make it nicer when subclassing Tile for other needs. (#1645)
  • Util:
    • Improved reslience of getStyle. (#1051)
    • Position parameter now gets set on createAlphaImageDiv(). (#1461)
    • modifyAlphaImageDiv() no longer makes hidden elements reappear in IE6. (#1520)
    • getRenderedDimensions() no longer improperly sets style width and height. (#1570)
  • Control.Panel: Redraws when toggle controls are activated. (#895)
  • Patched Test.AnotherWay to use importNode in html_eq. (#1376)
  • Popup: Fixed the auto-sizing feature that was causing them to expand and expand each time opened. (#1586)
  • General: Adding missing 'px' in various places throughout the code. (#1582)
  • Ajax: Fixing an obvious bug in Ajax.js: when we upgraded Prototype, we missed a pair -> extras. (#1559)
  • For great speediness, we now (whenever possible) cache array length instead of accessing it with each iteration. (#1636)

Changes to existing applications from previous versions

  • The OpenLayers.Events object no longer automatically includes the 'xy' property on all browser events. This is from (r7615 / #1459) and if it is causing you issues, you can override it by adding the following line to your code:
    OpenLayers.Events.prototype.includeXY = true;
    
  • On the SelectFeature control hover can no longer be set on the SelectFeature control after the control has been initialized: must be passed at initialize time. (r7682 / #1655)
  • Overlays with no scale/resolution properties set are now visible at all resolution levels (r/#)
  • Map divs which previously had a 'padding' or 'margin' or 'text-align' css property set... those properties are now overridden by style.css. (#1179) (#1116)
Last modified 8 years ago Last modified on Sep 29, 2008 6:05:46 AM