code: function(evt, start, last) {
          this.map.applyTransform();
          var zoom = this.map.getZoomForResolution(this.map.getResolution() / last.scale, true);
          if (zoom !== this.map.getZoom() || !this.currentCenter.equals(this.pinchOrigin)) {
              var resolution = this.map.getResolutionForZoom(zoom);
  
              var location = this.map.getLonLatFromPixel(this.pinchOrigin);
              var zoomPixel = this.currentCenter;        
              var size = this.map.getSize();
  
              location.lon += resolution * ((size.w / 2) - zoomPixel.x);
              location.lat -= resolution * ((size.h / 2) - zoomPixel.y);
  
              // Force a reflow before calling setCenter. This is to work
              // around an issue occuring in iOS.
              //
              // See https://github.com/openlayers/openlayers/pull/351.
              //
              // Without a reflow setting the layer container div's top left
              // style properties to "0px" - as done in Map.moveTo when zoom
              // is changed - won't actually correctly reposition the layer
              // container div.
              //
              // Also, we need to use a statement that the Google Closure
              // compiler won't optimize away.
              this.map.div.clientWidth = this.map.div.clientWidth;
  
              this.map.setCenter(location, zoom);
          }
      }
docs: Method: pinchDone
  
  Parameters:
  evt - {Event}
  start - {Object} pinch data object related to the touchstart event that
  started the pinch gesture.
  last - {Object} pinch data object related to the last touchmove event
  of the pinch gesture. This give us the final scale of the pinch.