Merge pull request #549 from elemoine/pan-interaction-fix

Pan interaction fix
This commit is contained in:
Éric Lemoine
2013-04-15 03:44:20 -07:00
3 changed files with 8 additions and 2 deletions

View File

@@ -78,7 +78,7 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
var map = mapBrowserEvent.map;
var view = map.getView();
view.setHint(ol.ViewHint.INTERACTING, -1);
var interacting = view.setHint(ol.ViewHint.INTERACTING, -1);
if (this.kinetic_ && this.kinetic_.end()) {
var distance = this.kinetic_.getDistance();
@@ -93,6 +93,8 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
centerpx.y - distance * Math.sin(angle));
var dest = map.getCoordinateFromPixel(destpx);
view.setCenter(dest);
} else if (interacting === 0) {
map.requestRenderFrame();
}
};

View File

@@ -81,7 +81,7 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
var map = mapBrowserEvent.map;
var view = map.getView();
if (this.targetTouches.length == 0) {
view.setHint(ol.ViewHint.INTERACTING, -1);
var interacting = view.setHint(ol.ViewHint.INTERACTING, -1);
if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
var distance = this.kinetic_.getDistance();
var angle = this.kinetic_.getAngle();
@@ -94,6 +94,8 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
centerpx.y - distance * Math.sin(angle));
var dest = map.getCoordinateFromPixel(destpx);
view.setCenter(dest);
} else if (interacting === 0) {
map.requestRenderFrame();
}
return false;
} else {

View File

@@ -59,9 +59,11 @@ ol.View.prototype.getView3D = goog.abstractMethod;
/**
* @param {ol.ViewHint} hint Hint.
* @param {number} delta Delta.
* @return {number} New value.
*/
ol.View.prototype.setHint = function(hint, delta) {
goog.asserts.assert(0 <= hint && hint < this.hints_.length);
this.hints_[hint] += delta;
goog.asserts.assert(this.hints_[hint] >= 0);
return this.hints_[hint];
};