diff --git a/demos/full-screen/full-screen.js b/demos/full-screen/full-screen.js index d7cc9f98a1..82bed5bbbf 100644 --- a/demos/full-screen/full-screen.js +++ b/demos/full-screen/full-screen.js @@ -21,4 +21,4 @@ var map = new ol.Map(document.getElementById('map'), { layers: new ol.Collection([layer]), zoom: 0 }); -var zoom = new ol.control.Zoom(map, layer.getSource().getResolutions()); +var zoom = new ol.control.Zoom(map, 4); diff --git a/src/ol/control/zoom.js b/src/ol/control/zoom.js index f5e493cf2b..60fc82692c 100644 --- a/src/ol/control/zoom.js +++ b/src/ol/control/zoom.js @@ -16,25 +16,17 @@ goog.require('ol.control.Control'); * @constructor * @extends {ol.control.Control} * @param {ol.Map} map Map. - * @param {Array.=} opt_resolutions The resolutions to zoom to. + * @param {number=} opt_zoomDelta Optional zoom delta. */ -ol.control.Zoom = function(map, opt_resolutions) { +ol.control.Zoom = function(map, opt_zoomDelta) { goog.base(this, map); - - if (!goog.isDef(opt_resolutions)) { - opt_resolutions = new Array(19); - for (var z = 0; z <= 18; ++z) { - opt_resolutions[z] = ol.Projection.EPSG_3857_HALF_SIZE / (128 << z); - } - } - + /** - * @type {Function} + * @type {number} * @private */ - this.constraint_ = ol.ResolutionConstraint.createSnapToResolutions( - opt_resolutions); + this.zoomDelta_ = goog.isDef(opt_zoomDelta) ? opt_zoomDelta : 1; /** * @type {Element} @@ -87,7 +79,7 @@ ol.control.Zoom.prototype.getElement = function() { ol.control.Zoom.prototype.handleIn_ = function(browserEvent) { browserEvent.stopPropagation(); browserEvent.preventDefault(); - this.zoom_(1); + this.getMap().zoom(this.zoomDelta_); }; @@ -98,27 +90,12 @@ ol.control.Zoom.prototype.handleIn_ = function(browserEvent) { ol.control.Zoom.prototype.handleOut_ = function(browserEvent) { browserEvent.stopPropagation(); browserEvent.preventDefault(); - this.zoom_(-1); + this.getMap().zoom(-this.zoomDelta_); }; - - -/** - * @param {number} delta Delta. - * @private - */ -ol.control.Zoom.prototype.zoom_ = function(delta) { - var map = this.getMap(); - var resolution = this.constraint_(map.getResolution(), delta); - map.setResolution(resolution); -}; - - /** * @inheritDoc */ ol.control.Zoom.prototype.disposeInternal = function() { - goog.dom.removeNode(this.inButton_); - goog.dom.removeNode(this.outButton_); goog.dom.removeNode(this.divElement_); delete this.inButton_; delete this.outButton_;