diff --git a/externs/olx.js b/externs/olx.js index 36d2bd800e..fa592f7ea7 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -1315,6 +1315,7 @@ olx.control.ScaleLineOptions.prototype.units; * tipLabel: (string|undefined), * target: (Element|undefined), * render: (function(ol.MapEvent)|undefined), + * resetNorth: (function()|undefined), * autoHide: (boolean|undefined)}} * @api stable */ @@ -1371,6 +1372,15 @@ olx.control.RotateOptions.prototype.autoHide; olx.control.RotateOptions.prototype.render; +/** + * Function called when the control is clicked. This will override the + * default resetNorth. + * @type {function()|undefined} + * @api + */ +olx.control.RotateOptions.prototype.resetNorth; + + /** * Target. * @type {Element|undefined} diff --git a/src/ol/control/rotatecontrol.js b/src/ol/control/rotatecontrol.js index 6d5c2c44ae..b19bacb1ed 100644 --- a/src/ol/control/rotatecontrol.js +++ b/src/ol/control/rotatecontrol.js @@ -63,6 +63,8 @@ ol.control.Rotate = function(opt_options) { var render = options.render ? options.render : ol.control.Rotate.render; + this.callResetNorth_ = options.resetNorth ? options.resetNorth : undefined; + goog.base(this, { element: element, render: render, @@ -101,7 +103,11 @@ goog.inherits(ol.control.Rotate, ol.control.Control); */ ol.control.Rotate.prototype.handleClick_ = function(event) { event.preventDefault(); - this.resetNorth_(); + if (this.callResetNorth_ !== undefined) { + this.callResetNorth_(); + } else { + this.resetNorth_(); + } };