Merge pull request #110 from ahocevar/no-pan-on-invalid-zoom
No pan on invalid zoom. r=@tschaub
This commit is contained in:
@@ -1749,7 +1749,12 @@ OpenLayers.Map = OpenLayers.Class({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.baseLayer.wrapDateLine) {
|
if (this.baseLayer.wrapDateLine) {
|
||||||
|
var requestedZoom = zoom;
|
||||||
zoom = this.adjustZoom(zoom);
|
zoom = this.adjustZoom(zoom);
|
||||||
|
if (zoom !== requestedZoom) {
|
||||||
|
// zoom was adjusted, so keep old lonlat to avoid panning
|
||||||
|
lonlat = this.getCenter();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// dragging is false by default
|
// dragging is false by default
|
||||||
var dragging = options.dragging || this.dragging;
|
var dragging = options.dragging || this.dragging;
|
||||||
|
|||||||
+12
-4
@@ -380,11 +380,13 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
function test_Map_isValidZoomLevel(t) {
|
function test_Map_isValidZoomLevel(t) {
|
||||||
t.plan(4);
|
t.plan(5);
|
||||||
var map = new OpenLayers.Map("map");
|
var map = new OpenLayers.Map("map");
|
||||||
map.addLayer(new OpenLayers.Layer(null, {
|
map.addLayer(new OpenLayers.Layer(null, {
|
||||||
isBaseLayer: true, numZoomLevels: 19
|
isBaseLayer: true, wrapDateLine: true, numZoomLevels: 19
|
||||||
}))
|
}));
|
||||||
|
map.zoomToMaxExtent();
|
||||||
|
|
||||||
var valid;
|
var valid;
|
||||||
|
|
||||||
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [-1]);
|
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [-1]);
|
||||||
@@ -398,6 +400,9 @@
|
|||||||
|
|
||||||
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
|
valid = OpenLayers.Map.prototype.isValidZoomLevel.apply(map, [19]);
|
||||||
t.eq(valid, false, "19 is not a valid zoomLevel");
|
t.eq(valid, false, "19 is not a valid zoomLevel");
|
||||||
|
|
||||||
|
map.moveTo([16, 48], 0);
|
||||||
|
t.eq(map.getCenter().toShortString(), "0, 0", "no panning when moveTo is called with invalid zoom");
|
||||||
|
|
||||||
map.destroy();
|
map.destroy();
|
||||||
}
|
}
|
||||||
@@ -1966,7 +1971,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function test_adjustZoom(t) {
|
function test_adjustZoom(t) {
|
||||||
t.plan(3);
|
t.plan(4);
|
||||||
var map = new OpenLayers.Map({
|
var map = new OpenLayers.Map({
|
||||||
div: 'map',
|
div: 'map',
|
||||||
layers: [
|
layers: [
|
||||||
@@ -1981,6 +1986,9 @@
|
|||||||
|
|
||||||
t.eq(map.adjustZoom(9), 9, "valid zoom maintained");
|
t.eq(map.adjustZoom(9), 9, "valid zoom maintained");
|
||||||
t.eq(map.adjustZoom(1), 2, "zoom adjusted to not exceed world width");
|
t.eq(map.adjustZoom(1), 2, "zoom adjusted to not exceed world width");
|
||||||
|
|
||||||
|
map.moveTo([16, 48], 0);
|
||||||
|
t.eq(map.getCenter().toShortString(), "0, 0", "no panning when moveTo is called with invalid zoom");
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Reference in New Issue
Block a user