Merge pull request #6224 from aAXEe/pinZoom-allowFractionalZoom

Pinch zoom: allow fractional zoom
This commit is contained in:
Tim Schaub
2016-12-09 10:22:05 -07:00
committed by GitHub
5 changed files with 70 additions and 7 deletions

View File

@@ -27,6 +27,12 @@ ol.interaction.PinchZoom = function(opt_options) {
var options = opt_options ? opt_options : {};
/**
* @private
* @type {boolean}
*/
this.constrainResolution_ = options.constrainResolution || false;
/**
* @private
* @type {ol.Coordinate}
@@ -111,13 +117,15 @@ ol.interaction.PinchZoom.handleUpEvent_ = function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
var view = map.getView();
view.setHint(ol.View.Hint.INTERACTING, -1);
var resolution = view.getResolution();
// Zoom to final resolution, with an animation, and provide a
// direction not to zoom out/in if user was pinching in/out.
// Direction is > 0 if pinching out, and < 0 if pinching in.
var direction = this.lastScaleDelta_ - 1;
ol.interaction.Interaction.zoom(map, view, resolution,
this.anchor_, this.duration_, direction);
if (this.constrainResolution_) {
var resolution = view.getResolution();
// Zoom to final resolution, with an animation, and provide a
// direction not to zoom out/in if user was pinching in/out.
// Direction is > 0 if pinching out, and < 0 if pinching in.
var direction = this.lastScaleDelta_ - 1;
ol.interaction.Interaction.zoom(map, view, resolution,
this.anchor_, this.duration_, direction);
}
return false;
} else {
return true;