This is totally unfinished, but tests pass, and it is only meant to give the map a Navigation control.
63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
goog.provide('ol.control.Navigation');
|
|
|
|
goog.require('ol.control.Control');
|
|
|
|
|
|
/**
|
|
* @constructor
|
|
* @extends {ol.control.Control}
|
|
* @param {boolean|undefined} opt_autoActivate
|
|
*/
|
|
ol.control.Navigation = function(opt_autoActivate) {
|
|
|
|
goog.base(this, opt_autoActivate);
|
|
|
|
/**
|
|
* Activate this control when it is added to a map. Default is true.
|
|
*
|
|
* @type {boolean} autoActivate
|
|
*/
|
|
this.autoActivate_ =
|
|
goog.isDef(opt_autoActivate) ? opt_autoActivate : true;
|
|
|
|
/**
|
|
* type {number}
|
|
* @private
|
|
*/
|
|
this.oldX = undefined;
|
|
|
|
/**
|
|
* type {number}
|
|
* @private
|
|
*/
|
|
this.oldY = undefined;
|
|
|
|
};
|
|
goog.inherits(ol.control.Navigation, ol.control.Control);
|
|
|
|
/** @inheritDoc */
|
|
ol.control.Navigation.prototype.activate = function() {
|
|
var active = goog.base(this, 'activate');
|
|
if (active) {
|
|
this.getMap().getEvents().register("drag", this.moveMap, this);
|
|
}
|
|
return active;
|
|
};
|
|
|
|
/** @inheritDoc */
|
|
ol.control.Navigation.prototype.deactivate = function() {
|
|
var inactive = goog.base(this, 'deactivate');
|
|
if (inactive) {
|
|
this.getMap().getEvents().unregister("drag", this.moveMap, this);
|
|
}
|
|
return inactive;
|
|
};
|
|
|
|
/**
|
|
* @param {Event} evt
|
|
*/
|
|
ol.control.Navigation.prototype.moveMap = function(evt) {
|
|
this.getMap().moveByPx(evt.clientX - oldX, evt.clientY - oldY);
|
|
oldX = evt.clientX;
|
|
oldY = evt.clientY;
|
|
}; |