Fix use of ol.IView2D in ol.interaction.TouchPan
This commit is contained in:
@@ -64,15 +64,15 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
|
|||||||
var deltaX = this.lastCentroid[0] - centroid[0];
|
var deltaX = this.lastCentroid[0] - centroid[0];
|
||||||
var deltaY = centroid[1] - this.lastCentroid[1];
|
var deltaY = centroid[1] - this.lastCentroid[1];
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var view = map.getView().getView2D();
|
var view2D = map.getView().getView2D();
|
||||||
var view2DState = view.getView2DState();
|
var view2DState = view2D.getView2DState();
|
||||||
var center = [deltaX, deltaY];
|
var center = [deltaX, deltaY];
|
||||||
ol.coordinate.scale(center, view2DState.resolution);
|
ol.coordinate.scale(center, view2DState.resolution);
|
||||||
ol.coordinate.rotate(center, view2DState.rotation);
|
ol.coordinate.rotate(center, view2DState.rotation);
|
||||||
ol.coordinate.add(center, view2DState.center);
|
ol.coordinate.add(center, view2DState.center);
|
||||||
center = view.constrainCenter(center);
|
center = view2D.constrainCenter(center);
|
||||||
map.requestRenderFrame();
|
map.requestRenderFrame();
|
||||||
view.setCenter(center);
|
view2D.setCenter(center);
|
||||||
}
|
}
|
||||||
this.lastCentroid = centroid;
|
this.lastCentroid = centroid;
|
||||||
};
|
};
|
||||||
@@ -84,12 +84,13 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
|
|||||||
ol.interaction.TouchPan.prototype.handleTouchEnd =
|
ol.interaction.TouchPan.prototype.handleTouchEnd =
|
||||||
function(mapBrowserEvent) {
|
function(mapBrowserEvent) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var view = map.getView();
|
var view2D = map.getView().getView2D();
|
||||||
if (this.targetTouches.length === 0) {
|
if (this.targetTouches.length === 0) {
|
||||||
if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
|
if (!this.noKinetic_ && this.kinetic_ && this.kinetic_.end()) {
|
||||||
var distance = this.kinetic_.getDistance();
|
var distance = this.kinetic_.getDistance();
|
||||||
var angle = this.kinetic_.getAngle();
|
var angle = this.kinetic_.getAngle();
|
||||||
var center = view.getCenter();
|
var center = view2D.getCenter();
|
||||||
|
goog.asserts.assert(goog.isDef(center));
|
||||||
this.kineticPreRenderFn_ = this.kinetic_.pan(center);
|
this.kineticPreRenderFn_ = this.kinetic_.pan(center);
|
||||||
map.beforeRender(this.kineticPreRenderFn_);
|
map.beforeRender(this.kineticPreRenderFn_);
|
||||||
var centerpx = map.getPixelFromCoordinate(center);
|
var centerpx = map.getPixelFromCoordinate(center);
|
||||||
@@ -97,8 +98,8 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
|
|||||||
centerpx[0] - distance * Math.cos(angle),
|
centerpx[0] - distance * Math.cos(angle),
|
||||||
centerpx[1] - distance * Math.sin(angle)
|
centerpx[1] - distance * Math.sin(angle)
|
||||||
]);
|
]);
|
||||||
dest = view.constrainCenter(dest);
|
dest = view2D.constrainCenter(dest);
|
||||||
view.setCenter(dest);
|
view2D.setCenter(dest);
|
||||||
}
|
}
|
||||||
map.requestRenderFrame();
|
map.requestRenderFrame();
|
||||||
return false;
|
return false;
|
||||||
@@ -116,12 +117,12 @@ ol.interaction.TouchPan.prototype.handleTouchStart =
|
|||||||
function(mapBrowserEvent) {
|
function(mapBrowserEvent) {
|
||||||
if (this.targetTouches.length > 0) {
|
if (this.targetTouches.length > 0) {
|
||||||
var map = mapBrowserEvent.map;
|
var map = mapBrowserEvent.map;
|
||||||
var view = map.getView();
|
var view2D = map.getView().getView2D();
|
||||||
this.lastCentroid = null;
|
this.lastCentroid = null;
|
||||||
map.requestRenderFrame();
|
map.requestRenderFrame();
|
||||||
if (!goog.isNull(this.kineticPreRenderFn_) &&
|
if (!goog.isNull(this.kineticPreRenderFn_) &&
|
||||||
map.removePreRenderFunction(this.kineticPreRenderFn_)) {
|
map.removePreRenderFunction(this.kineticPreRenderFn_)) {
|
||||||
view.setCenter(mapBrowserEvent.frameState.view2DState.center);
|
view2D.setCenter(mapBrowserEvent.frameState.view2DState.center);
|
||||||
this.kineticPreRenderFn_ = null;
|
this.kineticPreRenderFn_ = null;
|
||||||
}
|
}
|
||||||
if (this.kinetic_) {
|
if (this.kinetic_) {
|
||||||
|
|||||||
Reference in New Issue
Block a user