Use getView2DState instead of getResolution/getRotation in interactions

This commit is contained in:
Tom Payne
2013-06-25 12:18:31 +02:00
parent a427719a22
commit e5d6ccd6ba
2 changed files with 9 additions and 8 deletions

View File

@@ -61,10 +61,12 @@ ol.interaction.DragPan.prototype.handleDrag = function(mapBrowserEvent) {
// FIXME works for View2D only // FIXME works for View2D only
var view = map.getView(); var view = map.getView();
goog.asserts.assertInstanceof(view, ol.View2D); goog.asserts.assertInstanceof(view, ol.View2D);
var resolution = view.getResolution(); var view2DState = view.getView2DState();
var rotation = view.getRotation(); var newCenter = [
var newCenter = [-resolution * this.deltaX, resolution * this.deltaY]; -view2DState.resolution * this.deltaX,
ol.coordinate.rotate(newCenter, rotation); view2DState.resolution * this.deltaY
];
ol.coordinate.rotate(newCenter, view2DState.rotation);
ol.coordinate.add(newCenter, this.startCenter); ol.coordinate.add(newCenter, this.startCenter);
map.requestRenderFrame(); map.requestRenderFrame();
view.setCenter(newCenter); view.setCenter(newCenter);

View File

@@ -64,9 +64,8 @@ ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent =
// FIXME works for View2D only // FIXME works for View2D only
var view = map.getView(); var view = map.getView();
goog.asserts.assertInstanceof(view, ol.View2D); goog.asserts.assertInstanceof(view, ol.View2D);
var resolution = view.getResolution(); var view2DState = view.getView2DState();
var rotation = view.getRotation(); var mapUnitsDelta = view2DState.resolution * this.delta_;
var mapUnitsDelta = resolution * this.delta_;
var deltaX = 0, deltaY = 0; var deltaX = 0, deltaY = 0;
if (keyCode == goog.events.KeyCodes.DOWN) { if (keyCode == goog.events.KeyCodes.DOWN) {
deltaY = -mapUnitsDelta; deltaY = -mapUnitsDelta;
@@ -78,7 +77,7 @@ ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent =
deltaY = mapUnitsDelta; deltaY = mapUnitsDelta;
} }
var delta = [deltaX, deltaY]; var delta = [deltaX, deltaY];
ol.coordinate.rotate(delta, rotation); ol.coordinate.rotate(delta, view2DState.rotation);
ol.interaction.Interaction.pan( ol.interaction.Interaction.pan(
map, view, delta, ol.interaction.KEYBOARD_PAN_DURATION); map, view, delta, ol.interaction.KEYBOARD_PAN_DURATION);
mapBrowserEvent.preventDefault(); mapBrowserEvent.preventDefault();