Merge pull request #196 from ahocevar/baselayer-visibility

Making sure that a new base layer becomes visible. r=@bartvde.
This commit is contained in:
ahocevar
2012-02-02 05:37:51 -08:00
2 changed files with 21 additions and 3 deletions

View File

@@ -1161,6 +1161,11 @@ OpenLayers.Map = OpenLayers.Class({
if(!this.allOverlays || this.baseLayer.visibility) {
this.baseLayer.setVisibility(true);
// Layer may previously have been visible but not in range.
// In this case we need to redraw it to make it visible.
if (this.baseLayer.inRange === false) {
this.baseLayer.redraw();
}
}
// recenter the map

View File

@@ -763,7 +763,7 @@
}
function test_Map_setBaseLayer(t) {
t.plan( 4 );
t.plan( 6 );
map = new OpenLayers.Map('map');
@@ -791,6 +791,20 @@
t.ok(map.baseLayer == wmslayer2, "setbaselayer correctly sets 'baseLayer' property");
map.destroy();
var l1 = new OpenLayers.Layer(),
l2 = new OpenLayers.Layer(null, {maxResolution: 1.4});
map = new OpenLayers.Map({
div: 'map',
allOverlays: true,
layers: [l1, l2],
zoom: 0,
center: [0, 0]
});
t.eq(l2.div.style.display, "none", "Layer invisible because not in range");
map.raiseLayer(l1, 1);
t.eq(l2.div.style.display, "block", "Layer visible after base layer change because in range now");
map.destroy();
}
function test_Map_removeLayer(t) {
@@ -1276,10 +1290,10 @@
t.eq(res, null, "getResolutionForZoom returns null for no base layer");
map.fractionalZoom = true;
var layer = new OpenLayers.Layer("test", {isBaseLayer: true});
map.addLayer(layer);
layer.getResolutionForZoom = function() {
t.ok(true, "getResolutionForZoom calls base layer getResolutionForZoom");
}
map.addLayer(layer);
var res = map.getResolutionForZoom();
layer.destroy();
map.destroy();
@@ -2006,7 +2020,6 @@
map.moveTo([16, 48], 0);
t.eq(map.getCenter().toShortString(), "0, 0", "no panning when moveTo is called with invalid zoom");
}
</script>
</head>
<body>