[Users] How can I enabe, check node and change the visibility of basemaps with zoomlevel?

Vidal, Antoni antoni.vidal at icc.cat
Tue Feb 21 15:02:57 CET 2012


I've done something similar, here's my code:

 

                                               map.events.register("zoomend", map, function(){

                                                               var mapZoom = map.getZoom();

                                                               var treeLayers = Ext.getCmp('lyrsTree');

                                                               var nodeLimAdmin = treeLayers.getNodeById('limitsAdmin');

                                                               var layerLimAdmin = map.getLayersByName("limadmin")[0];

                                                               if(mapZoom > 5){

                                                                              layerLimAdmin.setVisibility(false);

                                                                              if(Ext.isDefined(nodeLimAdmin))nodeLimAdmin.disable();

                                                               }else{

                                                                                              if(Ext.isDefined(nodeLimAdmin))nodeLimAdmin.enable();

                                                               }

                                               });

 

Hope this helps you.

 

 

Antoni Vidal

Unitat d'Aplicacions SIG-WEB
Institut Cartogràfic de Catalunya <http://mercuri.icc.cat/website/mob_nf/mob1/mob2/inici2.htm?CONSULTA=Institut%20Cartogr%25E0fic%20de%20Catalunya&XYADDRESS=429486:4580392> 
Parc de Montjuïc, E-08038 Barcelona
Tel. (+34) 93 567 15 00 (ext. 3228)
www.icc.cat <http://www.icc.cat/> 

 

 

 

De: users-bounces at geoext.org [mailto:users-bounces at geoext.org] En nom de Robert Buckley
Enviat: martes, 21 de febrero de 2012 14:51
Per a: users at geoext.org
Tema: [Users] How can I enabe,check node and change the visibility of basemaps with zoomlevel?

 

Hi,

 

I am trying to turn off my basemaps according to the current zoom level....ie for zoom levels over 6 show,enable and check "layer_0", otherwise show,enable and check "layer_1"

 

<code>

map.events.on({

        "zoomend": function (e) {

            if (this.getZoom() >6) {

 

                layerTree.getRootNode().findChild('layer', layer_0, true).disable();

                        layer_0.setVisibility(false);

                        layerTree.getRootNode().findChild('layer',  layer_0 , true).checked==false; 

 

            } else {

 

                layerTree.getRootNode().findChild('layer', layer_1, true).disable();

                        layer_1.setVisibility(true);

                layerTree.getRootNode().findChild('layer',  layer_1 , true).checked==true;             

                

                

            }

        }

    });

 

 

The problems are as follows...

 

1. The nodes do not "check"

 

2. The disable method works ok, but when I zoom out again the layer still remains visible but does not zoom?!?

 

 

Has anyone done this successfully and can show me how?

 

 

yours,

 

Rob

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20120221/61e85577/attachment-0001.htm 


More information about the Users mailing list