I&#39;ve solved it. I needed to put this.displayInLayerSwitcher=true before setVisibility(), as the layerswitch redraw chain checks that property and it isn&#39;t set by the setVisibility() method (and that&#39;s right!).<br>
<br>Bye<br><br><div class="gmail_quote">2008/11/8 G. Allegri <span dir="ltr">&lt;<a href="mailto:giohappy@gmail.com">giohappy@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi.<br>I know this is an old question, but I can&#39;t figure out why the usual method to add/remove layers from LayerSwitch on the base of zoom doesn&#39;t work for me.<br><br>I have two layers:<br><br>&nbsp;&nbsp;&nbsp; GMLcomuni = new OpenLayers.Layer.GML(&quot;GMLcomuni&quot;,&quot;IET2.gml&quot;, {isBaseLayer:true,group:&quot;base&quot;});<br>

&nbsp;&nbsp;&nbsp; GMLsezioni = new OpenLayers.Layer.GML(&quot;GMLsezioni&quot;,&quot;IET2.gml&quot;, {group:&quot;base&quot;,maxResolution: 10,visibility: false,displayInLayerSwitcher:false});<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; map.addLayers([GMLcomuni,GMLsezioni]);<br>

&nbsp;&nbsp;&nbsp; layerswitch = new OpenLayers.Control.LayerSwitcher();<br>&nbsp;&nbsp;&nbsp; map.addControl(layerswitch);<br>&nbsp;&nbsp;&nbsp; map.events.register(&quot;zoomend&quot;,GMLsezioni, function(){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(map.resolution&lt;10){<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.setVisibility(true);<br>

&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //this.displayInLayerSwitcher=true;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; });<br><br>The setVisibility() method triggers both the changelayer and the <span>visibilitychanged events, but the layerswitcher seems to ignore them, leaving only the first baselayer.<br>

</span>&nbsp;(and the layer get drawn on the map), but the layerswitcher control doesn&#39;t react. Debuggin with FB I&#39;ve seen that the layerswitcher.checkRedraw() method returns false, so the redraw() returns nothin, but I&#39;ve checked<span> that layerswitch.layerStates[1].visibility property before and after </span>setVisibility(), and they change so I would expect the checkRedraw to return true!. I&#39;m a bit confused...<br>

<br>Any hint?<br><br>Giovanni<br> 
</blockquote></div><br>