diff --git a/src/ol/view.js b/src/ol/view.js index 333efca9f4..1a5b19377d 100644 --- a/src/ol/view.js +++ b/src/ol/view.js @@ -317,6 +317,16 @@ ol.View.prototype.getAnimating = function() { }; +/** + * Determine if the user is interacting with the view, such as panning or zooming. + * @return {boolean} The view is being interacted with. + * @api + */ +ol.View.prototype.getInteracting = function() { + return this.getHints()[ol.ViewHint.INTERACTING] > 0; +}; + + /** * Cancel any ongoing animations. * @api diff --git a/test/spec/ol/view.test.js b/test/spec/ol/view.test.js index cf06ec2fea..138c4b9ad5 100644 --- a/test/spec/ol/view.test.js +++ b/test/spec/ol/view.test.js @@ -310,9 +310,11 @@ describe('ol.View', function() { }); expect(view.getHints()).to.eql([0, 0]); + expect(view.getInteracting()).to.eql(0); view.setHint(ol.ViewHint.INTERACTING, 1); expect(view.getHints()).to.eql([0, 1]); + expect(view.getInteracting()).to.eql(1); }); it('triggers the change event', function(done) { @@ -323,6 +325,7 @@ describe('ol.View', function() { view.on('change', function() { expect(view.getHints()).to.eql([0, 1]); + expect(view.getInteracting()).to.eql(1); done(); }); view.setHint(ol.ViewHint.INTERACTING, 1);