Configure keyboard pan with an options object

This commit is contained in:
Tom Payne
2013-03-07 19:32:51 +01:00
parent c46f1425a0
commit af0bf21e8d
3 changed files with 10 additions and 8 deletions

View File

@@ -74,13 +74,15 @@
@exportObjectLiteralProperty ol.interaction.DefaultOptions.doubleClickZoom boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.doubleClickZoom boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.dragPan boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.dragPan boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.keyboard boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.keyboard boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.keyboardPanOffset number|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.mouseWheelZoom boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.mouseWheelZoom boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.shiftDragZoom boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.shiftDragZoom boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.touchPan boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.touchPan boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.touchRotate boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.touchRotate boolean|undefined
@exportObjectLiteralProperty ol.interaction.DefaultOptions.touchZoom boolean|undefined @exportObjectLiteralProperty ol.interaction.DefaultOptions.touchZoom boolean|undefined
@exportObjectLiteral ol.interaction.KeyboardPanOptions
@exportObjectLiteralProperty ol.interaction.KeyboardPanOptions.pixelDelta number|undefined
@exportObjectLiteral ol.interaction.KeyboardZoomOptions @exportObjectLiteral ol.interaction.KeyboardZoomOptions
@exportObjectLiteralProperty ol.interaction.KeyboardZoomOptions.delta number|undefined @exportObjectLiteralProperty ol.interaction.KeyboardZoomOptions.delta number|undefined

View File

@@ -72,10 +72,8 @@ ol.interaction.defaults = function(opt_options, opt_interactions) {
var keyboard = goog.isDef(options.keyboard) ? var keyboard = goog.isDef(options.keyboard) ?
options.keyboard : true; options.keyboard : true;
var keyboardPanOffset = goog.isDef(options.keyboardPanOffset) ?
options.keyboardPanOffset : 80;
if (keyboard) { if (keyboard) {
interactions.push(new ol.interaction.KeyboardPan(keyboardPanOffset)); interactions.push(new ol.interaction.KeyboardPan());
interactions.push(new ol.interaction.KeyboardZoom()); interactions.push(new ol.interaction.KeyboardZoom());
} }

View File

@@ -13,17 +13,19 @@ goog.require('ol.interaction.Interaction');
/** /**
* @constructor * @constructor
* @extends {ol.interaction.Interaction} * @extends {ol.interaction.Interaction}
* @param {number} pixelDelta Pixel delta. * @param {ol.interaction.KeyboardPanOptions=} opt_options Options.
*/ */
ol.interaction.KeyboardPan = function(pixelDelta) { ol.interaction.KeyboardPan = function(opt_options) {
goog.base(this); goog.base(this);
var options = goog.isDef(opt_options) ? opt_options : {};
/** /**
* @private * @private
* @type {number} * @type {number}
*/ */
this.pixelDelta_ = pixelDelta; this.delta_ = goog.isDef(options.delta) ? options.delta : 128;
}; };
goog.inherits(ol.interaction.KeyboardPan, ol.interaction.Interaction); goog.inherits(ol.interaction.KeyboardPan, ol.interaction.Interaction);
@@ -48,7 +50,7 @@ ol.interaction.KeyboardPan.prototype.handleMapBrowserEvent =
goog.asserts.assert(view instanceof ol.View2D); goog.asserts.assert(view instanceof ol.View2D);
var resolution = view.getResolution(); var resolution = view.getResolution();
var delta; var delta;
var mapUnitsDelta = resolution * this.pixelDelta_; var mapUnitsDelta = resolution * this.delta_;
if (keyCode == goog.events.KeyCodes.DOWN) { if (keyCode == goog.events.KeyCodes.DOWN) {
delta = new ol.Coordinate(0, -mapUnitsDelta); delta = new ol.Coordinate(0, -mapUnitsDelta);
} else if (keyCode == goog.events.KeyCodes.LEFT) { } else if (keyCode == goog.events.KeyCodes.LEFT) {