diff --git a/src/ol/control/zoomcontrol.js b/src/ol/control/zoomcontrol.js index f31b6aaa66..5c8fe4ca4a 100644 --- a/src/ol/control/zoomcontrol.js +++ b/src/ol/control/zoomcontrol.js @@ -2,10 +2,12 @@ goog.provide('ol.control.Zoom'); +goog.require('goog.asserts'); goog.require('goog.dom'); goog.require('goog.dom.TagName'); goog.require('goog.events'); goog.require('goog.events.EventType'); +goog.require('ol.View2D'); goog.require('ol.animation'); goog.require('ol.control.Control'); goog.require('ol.css'); @@ -77,8 +79,11 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) { browserEvent.preventDefault(); var map = this.getMap(); // FIXME works for View2D only - var view = map.getView().getView2D(); - var currentResolution = view.getResolution(); + var view = map.getView(); + goog.asserts.assert(goog.isDef(view)); + var view2D = view.getView2D(); + goog.asserts.assertInstanceof(view2D, ol.View2D); + var currentResolution = view2D.getResolution(); if (goog.isDef(currentResolution)) { if (this.duration_ > 0) { map.beforeRender(ol.animation.zoom({ @@ -87,7 +92,7 @@ ol.control.Zoom.prototype.zoomByDelta_ = function(delta, browserEvent) { easing: ol.easing.easeOut })); } - var newResolution = view.constrainResolution(currentResolution, delta); - view.setResolution(newResolution); + var newResolution = view2D.constrainResolution(currentResolution, delta); + view2D.setResolution(newResolution); } };