git-svn-id: http://svn.openlayers.org/trunk/openlayers@326 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
61 lines
2.1 KiB
JavaScript
61 lines
2.1 KiB
JavaScript
// @require: OpenLayers/Control.js
|
|
|
|
OpenLayers.Control.KeyboardDefaults = Class.create();
|
|
OpenLayers.Control.KeyboardDefaults.prototype =
|
|
Object.extend( new OpenLayers.Control(), {
|
|
|
|
initialize: function() {
|
|
OpenLayers.Control.prototype.initialize.apply(this, arguments);
|
|
},
|
|
|
|
draw: function() {
|
|
Event.observe(document, 'keypress', this.defaultKeyDown.bind(this.map));
|
|
},
|
|
|
|
/**
|
|
* @param {Event} evt
|
|
*/
|
|
defaultKeyDown: function (evt) {
|
|
var i = 0;
|
|
switch(evt.keyCode) {
|
|
case Event.KEY_LEFT:
|
|
var resolution = this.getResolution();
|
|
var center = this.getCenter();
|
|
this.setCenter(
|
|
new OpenLayers.LonLat(center.lon - (resolution * 50),
|
|
center.lat)
|
|
);
|
|
Event.stop(evt);
|
|
break;
|
|
case Event.KEY_RIGHT:
|
|
var resolution = this.getResolution();
|
|
var center = this.getCenter();
|
|
this.setCenter(
|
|
new OpenLayers.LonLat(center.lon + (resolution * 50),
|
|
center.lat)
|
|
);
|
|
Event.stop(evt);
|
|
break;
|
|
case Event.KEY_UP:
|
|
var resolution = this.getResolution();
|
|
var center = this.getCenter();
|
|
this.setCenter(
|
|
new OpenLayers.LonLat(center.lon,
|
|
center.lat + (resolution * 50))
|
|
);
|
|
Event.stop(evt);
|
|
break;
|
|
case Event.KEY_DOWN:
|
|
var resolution = this.getResolution();
|
|
var center = this.getCenter();
|
|
this.setCenter(
|
|
new OpenLayers.LonLat(center.lon,
|
|
center.lat - (resolution * 50))
|
|
);
|
|
Event.stop(evt);
|
|
break;
|
|
}
|
|
}
|
|
|
|
});
|