Only shift extents that cross once.
This commit is contained in:
@@ -652,21 +652,24 @@ OpenLayers.Bounds = OpenLayers.Class({
|
|||||||
if (maxExtent) {
|
if (maxExtent) {
|
||||||
var width = maxExtent.getWidth();
|
var width = maxExtent.getWidth();
|
||||||
|
|
||||||
|
var newRight = newBounds.right - rightTolerance;
|
||||||
|
var newLeft = newBounds.left + leftTolerance;
|
||||||
|
|
||||||
//shift right?
|
//shift right?
|
||||||
while (newBounds.left < maxExtent.left &&
|
while (newBounds.left < maxExtent.left &&
|
||||||
newBounds.right - rightTolerance <= maxExtent.left ) {
|
newRight <= maxExtent.left ) {
|
||||||
newBounds = newBounds.add(width, 0);
|
newBounds = newBounds.add(width, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
//shift left?
|
//shift left?
|
||||||
while (newBounds.left + leftTolerance >= maxExtent.right &&
|
while (newLeft >= maxExtent.right &&
|
||||||
newBounds.right > maxExtent.right ) {
|
newBounds.right > maxExtent.right ) {
|
||||||
newBounds = newBounds.add(-width, 0);
|
newBounds = newBounds.add(-width, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// crosses right? force left
|
// crosses right only? force left
|
||||||
if (newBounds.left + leftTolerance < maxExtent.right &&
|
if (newLeft < maxExtent.right && newLeft > maxExtent.left &&
|
||||||
newBounds.right - rightTolerance > maxExtent.right) {
|
newRight > maxExtent.right) {
|
||||||
newBounds = newBounds.add(-width, 0);
|
newBounds = newBounds.add(-width, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user