Use view2DState in ol.interaction.DragRotateAndZoom

This commit is contained in:
Tom Payne
2013-06-25 17:11:33 +02:00
parent 8565201c74
commit ec4110ee54

View File

@@ -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;