Version 38 (modified by euzuro, 8 years ago)

--

OpenLayers 2.2 Release Notes

General

  • Script-adding is now XHTML Compliant (#177) -- Thanks Steve Pomeroy!
  • Single file build no longer produces bogus paths to control pngs (#259)
  • OpenLayers Lite factored out as an independent build target (#323)
  • Removal of Prototype Library (r1588)
    • Object.extend() becomes OpenLayers.Util.extend()
    • Try.these() becomes OpenLayers.Util.Try()
    • Position.page() becomes OpenLayers.Util.pagePosition()
    • Ajax becomes OpenLayers.Ajax
    • Element becomes OpenLayers.Element
    • Event becomes OpenLayers.Event
    • Improvement of class definition vs instantiation (#75) old syntax:
          OpenLayers.A = Class.create();
          OpenLayers.A.prototype = 
             Object.extent( new OpenLayers.X(),
               Object.extent( new OpenLayers.Y(), { 
              //prototype goes here 
          }));
      
      new syntax:
          OpenLayers.A = OpenLayers.Class.create();
          OpenLayers.A.prototype = 
            OpenLayers.Class.inherit( OpenLayers.X, OpenLayers.Y, {
              //prototype goes here
          });
      
      Besides simply being more readable and understandable, the main benefit of this new enhancement (see r1647 for details) is that it removes the extraneous calls to classes' initialize() method during class definitions. This means no more do you need to test
          if (arguments.length > 0) 
      
      inside a superclass's constructor before doing instance-specific work, because it will only be called on instantiation of a new class.

Map

  • Map now gracefully deals with setCenter() to out-of maxExtent coord (#191)
  • Selection of Map Tiles is Prevented (#272) -- Thanks Sean Gillies!
  • Fixed obscure page-scrolling map display bug (#333)
  • Switching BaseLayers
    • No Longer Unnecessarily Redraws all Layers (#262)
    • Maintain Map Resolution on Switch(#182) Instead of merely jumping to the same zoom level (index into the resolutions array) in the new base layer, we call zoomToExtent() on the old layer's extent. This picks the closest resolution available.

Layers

  • Scales and Resolutions
    • Preset scales[] and resolutions[] arrays are Automatically Sorted (#190)
    • When a cloned layer is added to a map, it re-initializes its resolutions information based on new map div's characteristics. (#328)
    • Scale-dependent layer visibility (#99) All overlays now test to make sure that the current map's resolution (or scale) falls in between their minResolution and maxResolution* values. If it does not, then the layer is hidden and greyed out in the LayerSwitcher.

      *For a refresher on how resolution values are calculated, see SettingZoomLevels
  • Layers can be Raised/Lowered Programmatically (#105) New map functions
    getNumLayers()
    getLayerIndex()
    setLayerIndex()
    raiseLayer() 
    

to support raising and lowering layers in vertical map space. (see r1604)

  • Grid
    • Tiles now round bbox values to six decimal digits (#283)
    • Tiles outside maxExtent can be set to not render (#284)
    • WFS
      • WFS Layers now work in Firefox, IE, Safari. (#138)
    • WMS
      • WMS layers can now be reprojected onto different base layers (#196) Now you can more accurately overlay WMS layers onto Google, VE, or any other baselayer.
        See it here:  examples/google.html
  • Untiled
    • Untiled Layer now by default loads a variable buffer zone around the map div for better browsing (#326) (#355)

Cleanup Yahoo, VE, Multimap layers

  • Google
    • Allow click-through to Google Terms of Use Link (#185)
  • Virtual Earth
    • Dragging fixed (#216)
    • Supports all VE Map Styles (#273)
  • Created Mapserver CGI Layer (#175) -- Thanks Arnd Wipperman!

Popups

  • Gave the popup a content area, padding, and an optional close box (#330)

Controls