diff --git a/src/ol/interaction/dragrotateandzoominteraction.js b/src/ol/interaction/dragrotateandzoominteraction.js index cccf420b3a..de64f30d46 100644 --- a/src/ol/interaction/dragrotateandzoominteraction.js +++ b/src/ol/interaction/dragrotateandzoominteraction.js @@ -72,15 +72,16 @@ ol.interaction.DragRotateAndZoom.prototype.handleDrag = var magnitude = delta.magnitude(); // FIXME works for View2D only var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); map.requestRenderFrame(); if (goog.isDef(this.lastAngle_)) { var angleDelta = theta - this.lastAngle_; ol.interaction.Interaction.rotateWithoutConstraints( - map, view, view.getRotation() - angleDelta); + map, view, view2DState.rotation - angleDelta); } this.lastAngle_ = theta; if (goog.isDef(this.lastMagnitude_)) { - var resolution = this.lastMagnitude_ * (view.getResolution() / magnitude); + var resolution = this.lastMagnitude_ * (view2DState.resolution / magnitude); ol.interaction.Interaction.zoomWithoutConstraints(map, view, resolution); } if (goog.isDef(this.lastMagnitude_)) { @@ -98,11 +99,13 @@ ol.interaction.DragRotateAndZoom.prototype.handleDragEnd = var map = mapBrowserEvent.map; // FIXME works for View2D only var view = map.getView().getView2D(); + var view2DState = view.getView2DState(); var direction = this.lastScaleDelta_ - 1; map.withFrozenRendering(function() { - ol.interaction.Interaction.rotate(map, view, view.getRotation()); - ol.interaction.Interaction.zoom(map, view, view.getResolution(), undefined, - ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION, direction); + ol.interaction.Interaction.rotate(map, view, view2DState.rotation); + ol.interaction.Interaction.zoom(map, view, view2DState.resolution, + undefined, ol.interaction.DRAGROTATEANDZOOM_ANIMATION_DURATION, + direction); }); this.lastScaleDelta_ = 0; return true;