[Users] Disable Nodes on Zoom Event

Matt Priour mpriour at kestrelcomputer.com
Thu Oct 28 16:46:14 CEST 2010


OpenLayers already has a Map moveend event handler that will check to see if the layer is still in range (maxExtent, minResolution, maxResolution, minScale & maxScale are all tested)
You should use one of these configuration options (maxResolution, minResolution are easiest) on the layers and let OL do the turning on/off layers for you.

To have your GeoExt LayerNodes respond by enabling/disabling when layers are in/out of range, you can apply the autoDisable patch [1] attached to Ticket #235 (http://trac.geoext.org/attachment/ticket/235)

[1] http://trac.geoext.org/attachment/ticket/235/autoDisableLayerNode.patch

Matt Priour
Kestrel Computer Consulting




From: IT Intern 
Sent: Thursday, October 28, 2010 9:08 AM
To: users at geoext.org 
Subject: [Users] Disable Nodes on Zoom Event


Hello GeoExt Users,

I have a zoom event that when a user zoom in and out of my map certain layers I setVisibility(false).  Now what I would like to do is have another event inside that event which disables the nodes of those layers when their setVisibilty(false) and enables them back when setVisibility(true).  I have some code and it kinda works, but the problem is the checkchange event does not only work when the zoomend event is done, but also anytime a user clicks the layer nodes.  I played a little with stopPropagation and that didn't do anything for me.  Actually I think my zoomend event could be much better coded and I would really love some suggestions.  I appreciate everyone taking their time to help me :)

elshae

Code:

map.events.on({ "zoomend": function (e) {

                  layerTree.on("checkchange", function (node, checked) {
                    alert(node.text + "Inside event");
                    if(checked == false)
                        node.disable();
                    else if(checked == true)
                        node.enable();

                });
                      
                      if (this.getZoom() > 7) {
                          tib_villages.setVisibility(true);
                          tib_lakes.setVisibility(true);
                          tib_townships.setVisibility(true);

                        
                    }
                    else {

                                    tib_villages.setVisibility(false);
                                    tib_lakes.setVisibility(false);
                                    tib_townships.setVisibility(false);
                                    //alert(layerTree.tib_villages.node.text);
              
                        if (this.getZoom() > 5) {
                              infrastructure.setVisibility(true);
                              geography.setVisibility(true);
                              geography2.setVisibility(true);
                              tib_countys.setVisibility(true);
                              
                        }
                        else{
                            infrastructure.setVisibility(false);
                            geography.setVisibility(false);
                              geography2.setVisibility(false);
                              tib_countys.setVisibility(false);
                        }
                    }//end else
                    
                }//end function (e)
                
            }); //end map.events.on



--------------------------------------------------------------------------------


_______________________________________________
Users mailing list
Users at geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.geoext.org/pipermail/users/attachments/20101028/b7cb700e/attachment.htm 


More information about the Users mailing list