[OpenLayers-Users] add/remove layers from layerswitcher
G. Allegri
giohappy at gmail.com
Sat Nov 8 13:45:42 EST 2008
I've solved it. I needed to put this.displayInLayerSwitcher=true before
setVisibility(), as the layerswitch redraw chain checks that property and it
isn't set by the setVisibility() method (and that's right!).
Bye
2008/11/8 G. Allegri <giohappy at gmail.com>
> Hi.
> I know this is an old question, but I can't figure out why the usual method
> to add/remove layers from LayerSwitch on the base of zoom doesn't work for
> me.
>
> I have two layers:
>
> GMLcomuni = new OpenLayers.Layer.GML("GMLcomuni","IET2.gml",
> {isBaseLayer:true,group:"base"});
> GMLsezioni = new OpenLayers.Layer.GML("GMLsezioni","IET2.gml",
> {group:"base",maxResolution: 10,visibility:
> false,displayInLayerSwitcher:false});
>
> map.addLayers([GMLcomuni,GMLsezioni]);
> layerswitch = new OpenLayers.Control.LayerSwitcher();
> map.addControl(layerswitch);
> map.events.register("zoomend",GMLsezioni, function(){
> if(map.resolution<10){
> this.setVisibility(true);
> //this.displayInLayerSwitcher=true;
> }
> });
>
> The setVisibility() method triggers both the changelayer and the visibilitychanged
> events, but the layerswitcher seems to ignore them, leaving only the first
> baselayer.
> (and the layer get drawn on the map), but the layerswitcher control
> doesn't react. Debuggin with FB I've seen that the
> layerswitcher.checkRedraw() method returns false, so the redraw() returns
> nothin, but I've checked that layerswitch.layerStates[1].visibility
> property before and after setVisibility(), and they change so I would
> expect the checkRedraw to return true!. I'm a bit confused...
>
> Any hint?
>
> Giovanni
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20081108/8776f00a/attachment.html
More information about the Users
mailing list