From 3b74f72c5656c17b2854481d4d8a35212706fa33 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Tue, 26 Feb 2013 10:52:53 +0100 Subject: [PATCH] Add optional kinetic parameter. --- src/ol/interaction/touchpaninteraction.js | 18 +++++++++++------- src/ol/map.js | 3 ++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ol/interaction/touchpaninteraction.js b/src/ol/interaction/touchpaninteraction.js index 4d033932e9..69bad9a186 100644 --- a/src/ol/interaction/touchpaninteraction.js +++ b/src/ol/interaction/touchpaninteraction.js @@ -1,5 +1,4 @@ // FIXME works for View2D only -// FIXME opt_kinetic param goog.provide('ol.interaction.TouchPan'); goog.require('goog.asserts'); @@ -16,16 +15,17 @@ goog.require('ol.interaction.Touch'); /** * @constructor * @extends {ol.interaction.Touch} + * @param {ol.Kinetic=} opt_kinetic Kinetic object. */ -ol.interaction.TouchPan = function() { +ol.interaction.TouchPan = function(opt_kinetic) { goog.base(this); /** * @private - * @type {ol.Kinetic} + * @type {ol.Kinetic|undefined} */ - this.kinetic_ = new ol.Kinetic(-0.005, 0.05, 100); + this.kinetic_ = opt_kinetic; /** * @private @@ -49,7 +49,9 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) { goog.asserts.assert(this.targetTouches.length >= 1); var centroid = ol.interaction.Touch.centroid(this.targetTouches); if (!goog.isNull(this.lastCentroid)) { - this.kinetic_.update(centroid.x, centroid.y); + if (this.kinetic_) { + this.kinetic_.update(centroid.x, centroid.y); + } var deltaX = this.lastCentroid.x - centroid.x; var deltaY = centroid.y - this.lastCentroid.y; var view = mapBrowserEvent.map.getView(); @@ -72,7 +74,7 @@ ol.interaction.TouchPan.prototype.handleTouchEnd = var view = map.getView(); if (this.targetTouches.length == 0) { view.setHint(ol.ViewHint.PANNING, -1); - if (this.kinetic_.end()) { + if (this.kinetic_ && this.kinetic_.end()) { var distance = this.kinetic_.getDistance(); var angle = this.kinetic_.getAngle(); var center = view.getCenter(); @@ -108,7 +110,9 @@ ol.interaction.TouchPan.prototype.handleTouchStart = view.setCenter(mapBrowserEvent.frameState.view2DState.center); this.kineticPreRenderFn_ = null; } - this.kinetic_.begin(); + if (this.kinetic_) { + this.kinetic_.begin(); + } view.setHint(ol.ViewHint.PANNING, 1); return true; } else { diff --git a/src/ol/map.js b/src/ol/map.js index 1a16c95136..1b47a05f98 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -965,7 +965,8 @@ ol.Map.createInteractions_ = function(mapOptions) { var touchPan = goog.isDef(mapOptions.touchPan) ? mapOptions.touchPan : true; if (touchPan) { - interactions.push(new ol.interaction.TouchPan()); + interactions.push(new ol.interaction.TouchPan( + new ol.Kinetic(-0.005, 0.05, 100))); } var touchRotate = goog.isDef(mapOptions.touchRotate) ?