openstreetmap-website/public/lib/OpenLayers/Control/KeyboardDefaults.js
2006-08-27 00:45:43 +00:00

65 lines
1.7 KiB
JavaScript

/* Copyright (c) 2006 MetaCarta, Inc., published under the BSD license.
* See http://svn.openlayers.org/trunk/openlayers/license.txt for the full
* text of the license. */
// @require: OpenLayers/Control.js
/**
* @class
*/
OpenLayers.Control.KeyboardDefaults = Class.create();
OpenLayers.Control.KeyboardDefaults.prototype =
Object.extend( new OpenLayers.Control(), {
/** @type int */
slideFactor: 50,
/**
* @constructor
*/
initialize: function() {
OpenLayers.Control.prototype.initialize.apply(this, arguments);
},
/**
*
*/
draw: function() {
Event.observe(document,
'keypress',
this.defaultKeyDown.bind(this));
},
/**
* @param {Event} evt
*/
defaultKeyDown: function (evt) {
var slide = this.map.getResolution() * this.slideFactor;
var center = this.map.getCenter();
var newCenter = center.copyOf();
switch(evt.keyCode) {
case Event.KEY_LEFT:
newCenter = newCenter.add( -slide, 0);
break;
case Event.KEY_RIGHT:
newCenter = newCenter.add( slide, 0);
break;
case Event.KEY_UP:
newCenter = newCenter.add( 0, slide);
break;
case Event.KEY_DOWN:
newCenter = newCenter.add( 0, -slide);
break;
}
if (!newCenter.equals(center)) {
this.map.setCenter(newCenter);
Event.stop(evt);
}
},
/** @final @type String */
CLASS_NAME: "OpenLayers.Control.KeyboardDefaults"
});