The cleanest thing would be to listen for zoom changes of the map and
remove/add the layers accordingly. This can be done by assigning an event
listener to each layer that checks if the map scale is still within the
layer's min/maxscale and drop it accordingly.
Something like this (untested):
function isLayerAvailable (event){
if (!event.zoomChanged ) {
return;
}
var layer = this;
var mapScale = layer.map.getScale();
if ( mapScale > layer.maxScale || mapScale < layer.minScale){
layer.map.removeLayer(layer);
//TODO: add the other layer here
}
}
map.layers[0].events.on({
moveend: isLayerAvailable,
scope: this
});
cheers,
Franz
2011/6/28 Alberto Valente <[email protected]>
> Hi, I have 2 layers and one is available (min-maxscale) from scale 1000 to
> 200000 and the other from 200000 to 400000 (sat and aerial photos).
> If the user changes the active layer from one to the other, the map becomes
> white (correctly since actual scale is not permitted for the other layer)
> but I'd like to tell user that the scale is not available for this layer.
>
> For example disabling the layer from layer chooser if the actual scale is
> not allowed for it
> or by switching to layer's nearest allowed scale
> or by auto-switching back to the other layer and launching an alert();
>
> How to do that?
>
> thank you
> alberto
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
>
_______________________________________________
Users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/openlayers-users