From c1575e810b2bede4aa12505d3f73eea8f34e2e2d Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Wed, 26 Aug 2015 12:46:36 +0200 Subject: [PATCH] Use view.getRotation and view.getResolution instead of view.getState view.getState calls 4 functions and creates an object and an array. It's more efficient to use view.getRotation and view.getResolution. --- src/ol/interaction/dragrotateandzoominteraction.js | 10 ++++------ src/ol/interaction/keyboardpaninteraction.js | 5 ++--- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/ol/interaction/dragrotateandzoominteraction.js b/src/ol/interaction/dragrotateandzoominteraction.js index 83ecc0f5f2..fef67b9f9c 100644 --- a/src/ol/interaction/dragrotateandzoominteraction.js +++ b/src/ol/interaction/dragrotateandzoominteraction.js @@ -88,16 +88,15 @@ ol.interaction.DragRotateAndZoom.handleDragEvent_ = function(mapBrowserEvent) { var theta = Math.atan2(delta.y, delta.x); var magnitude = delta.magnitude(); var view = map.getView(); - var viewState = view.getState(); map.render(); if (goog.isDef(this.lastAngle_)) { var angleDelta = theta - this.lastAngle_; ol.interaction.Interaction.rotateWithoutConstraints( - map, view, viewState.rotation - angleDelta); + map, view, view.getRotation() - angleDelta); } this.lastAngle_ = theta; if (goog.isDef(this.lastMagnitude_)) { - var resolution = this.lastMagnitude_ * (viewState.resolution / magnitude); + var resolution = this.lastMagnitude_ * (view.getResolution() / magnitude); ol.interaction.Interaction.zoomWithoutConstraints(map, view, resolution); } if (goog.isDef(this.lastMagnitude_)) { @@ -121,10 +120,9 @@ ol.interaction.DragRotateAndZoom.handleUpEvent_ = function(mapBrowserEvent) { var map = mapBrowserEvent.map; var view = map.getView(); view.setHint(ol.ViewHint.INTERACTING, -1); - var viewState = view.getState(); var direction = this.lastScaleDelta_ - 1; - ol.interaction.Interaction.rotate(map, view, viewState.rotation); - ol.interaction.Interaction.zoom(map, view, viewState.resolution, + ol.interaction.Interaction.rotate(map, view, view.getRotation()); + ol.interaction.Interaction.zoom(map, view, view.getResolution(), undefined, this.duration_, direction); this.lastScaleDelta_ = 0; return false; diff --git a/src/ol/interaction/keyboardpaninteraction.js b/src/ol/interaction/keyboardpaninteraction.js index 1badd407cc..a8c8335331 100644 --- a/src/ol/interaction/keyboardpaninteraction.js +++ b/src/ol/interaction/keyboardpaninteraction.js @@ -83,8 +83,7 @@ ol.interaction.KeyboardPan.handleEvent = function(mapBrowserEvent) { var map = mapBrowserEvent.map; var view = map.getView(); goog.asserts.assert(!goog.isNull(view), 'view should not be null'); - var viewState = view.getState(); - var mapUnitsDelta = viewState.resolution * this.pixelDelta_; + var mapUnitsDelta = view.getResolution() * this.pixelDelta_; var deltaX = 0, deltaY = 0; if (keyCode == goog.events.KeyCodes.DOWN) { deltaY = -mapUnitsDelta; @@ -96,7 +95,7 @@ ol.interaction.KeyboardPan.handleEvent = function(mapBrowserEvent) { deltaY = mapUnitsDelta; } var delta = [deltaX, deltaY]; - ol.coordinate.rotate(delta, viewState.rotation); + ol.coordinate.rotate(delta, view.getRotation()); ol.interaction.Interaction.pan(map, view, delta, this.duration_); mapBrowserEvent.preventDefault(); stopEvent = true;