Merge pull request #1075 from fredj/center-constraint

Add ol.CenterConstraint
This commit is contained in:
Frédéric Junod
2013-10-02 02:54:17 -07:00
9 changed files with 88 additions and 4 deletions

View File

@@ -68,6 +68,7 @@ ol.interaction.DragPan.prototype.handleDrag = function(mapBrowserEvent) {
];
ol.coordinate.rotate(newCenter, view2DState.rotation);
ol.coordinate.add(newCenter, this.startCenter);
newCenter = view.constrainCenter(newCenter);
map.requestRenderFrame();
view.setCenter(newCenter);
};
@@ -95,6 +96,7 @@ ol.interaction.DragPan.prototype.handleDragEnd = function(mapBrowserEvent) {
centerpx[0] - distance * Math.cos(angle),
centerpx[1] - distance * Math.sin(angle)
]);
dest = view.constrainCenter(dest);
view.setCenter(dest);
}
map.requestRenderFrame();

View File

@@ -42,7 +42,9 @@ ol.interaction.Interaction.pan = function(
easing: ol.easing.linear
}));
}
view.setCenter([currentCenter[0] + delta[0], currentCenter[1] + delta[1]]);
var center = view.constrainCenter(
[currentCenter[0] + delta[0], currentCenter[1] + delta[1]]);
view.setCenter(center);
}
};

View File

@@ -69,6 +69,7 @@ ol.interaction.TouchPan.prototype.handleTouchMove = function(mapBrowserEvent) {
ol.coordinate.scale(center, view2DState.resolution);
ol.coordinate.rotate(center, view2DState.rotation);
ol.coordinate.add(center, view2DState.center);
center = view.constrainCenter(center);
map.requestRenderFrame();
view.setCenter(center);
}
@@ -95,6 +96,7 @@ ol.interaction.TouchPan.prototype.handleTouchEnd =
centerpx[0] - distance * Math.cos(angle),
centerpx[1] - distance * Math.sin(angle)
]);
dest = view.constrainCenter(dest);
view.setCenter(dest);
}
map.requestRenderFrame();