[Users] Displaying single legend items when the layer is a group layer comprised of several layers

Andrew Stewart Andrew.Stewart at reddeer.ca
Fri Nov 19 00:11:08 CET 2010


I am having a slight issue with the LayerNode setup. Unfortunately I need to have some layers not displayed during load of the map, but using the below code all layers are automatically checked. When I try the code layerList_Base.expand();   so that I can uncheck one of the child nodes I get the following error - 


Message: 'insertAdjacentHTML' is null or not an object
Line: 7
Char: 5686
Code: 0
URI: ext-3.3.0/ext-all.js

Is there a better way for me to uncheck one of these layers or something I can do to correct this error? I just need to be able to make a few of these layers not displayed so they are unchecked during load.. Appreciate any help!


// Base Group Layers               
var layer_Base = new OpenLayers.Layer.WMS("Base", "http://localhost/WebService/Request.aspx",
                    {
                        layers: ['Rural_Lot_Line', 'Rural_Block_Line', 'Section_Lines', 'Linear_Parks', 'School_Sites', 'Recreation_Sites', 'Neighbourhood_Parks', 'Major_Parks', 'Neighbourhood_Boundary', 'Neighbourhood_Area__clear_', 'Hydrology', 'City_Boundary', 'Street_Secondary_Segment', 'Street_Segment', 'Arterial', 'Highway', 'Rural_Highway', 'Bridge'],
                        VERSION: "1.1.1",
                        format: 'image/png',
                        transparent: true
                    },
                    { isBaseLayer: false,
                      singleTile: true,
                      buffer: 4
                    }
                );


layerList_Base = new GeoExt.tree.LayerNode({
        "layer": layer_Base,
        "isLeaf": false,
        "checked": false,
        "cls": "rootnode",
        "nodeType": "gx_layer",
        "loader": {
        "param": "LAYERS"
        }
        });


-----Original Message-----
From: users-bounces at geoext.org [mailto:users-bounces at geoext.org] On Behalf Of Andrew Stewart
Sent: November 18, 2010 2:39 PM
To: 'Andreas Hocevar'
Cc: users at geoext.org
Subject: Re: [Users] Displaying single legend items when the layer is a group layer comprised of several layers

Thank you very much! I was looking at this before and could not get it to work.. But your provided example code was exactly enough to get me going.. The problem I was doing before was when defining my layers I wasn't seperating them by 'layer name', 'layer name' .. I had them all individually inside only one 'layer name, layer name' but when I put quotes around each one and seperated them by comma it works perfectly, thanks again!


-----Original Message-----
From: Andreas Hocevar [mailto:ahocevar at opengeo.org] 
Sent: November 18, 2010 2:26 PM
To: Andrew Stewart
Cc: users at geoext.org
Subject: Re: [Users] Displaying single legend items when the layer is a group layer comprised of several layers

Hi,

you may want to have a look at http://geoext.org/lib/GeoExt/widgets/tree/LayerParamLoader.html.

For your layer_Base layer, the tree node configuration could look like this:

layerList_Base = new GeoExt.tree.LayerNode({
    "layer": layer_Base,
    "isLeaf": false,
    "loader": {
        "param": "LAYERS"
    }
});

Regards,
Andreas.

On Nov 18, 2010, at 22:09 , Andrew Stewart wrote:

> Is this possible to display each individual item so I can still check/uncheck them using my below code, or can I use a different GeoExt/Ext container to accomplish this? I need to keep the layers grouped because of performance but I still need to be able to display each individual layer so that I can turn them on/off. Is this possible? Any example/help immensely appreciated.
>  
>  
> My layer group is declared as the following -
>  
>      // Base Group Layers
>                   var layer_Base = new OpenLayers.Layer.WMS("Base Layers", "http://localhost/WebService/Request.aspx",
>                     {
>                         layers: ['Bridge,Rural_Highway,Highway,Arterial,Street_Segment, Street_Secondary_Segment, City_Boundary,                         Hydrology,Neighbourhood_Area__clear_,Neighbourhood_Boundary,Major_Parks,Neighbourhood_Parks,Recreation_Sites,School_Sites,Linear_Parks,Section_Lines,Rural_Block_Line,Rural_Lot_Line'],
>                         VERSION: "1.1.1",
>                         transparent: true
>                     },
>                     { isBaseLayer: false,
>                       singleTile: true,
>                       buffer: 4
>                     }
>                 );
>  
>  
> Then I define my Treenode root and treepanel, and create a GeoExt LayerContainer to load the layer into the root node. Can the layers above be displayed as individual items with separate checkboxes somehow?
>  
> var layerRoot_Legend = new Ext.tree.TreeNode({
>         enableDD: true,
>         text: "All Legend Items",
>         loaded: true,
>         expanded: true
>         });
>  
>         var layerTree_Legend = new Ext.tree.TreePanel({
>         title: '',
>         root: layerRoot_Legend,
>         enableDD: true,
>         applyLoader: true,
>         rootVisible: false
>         });
>  
>  
> //Base layerList
>         layerList_Base = new GeoExt.tree.LayerContainer({
>         text: 'Base',
>         layerStore: mapPanel.layers,
>         leaf: false,
>         enableDD: true,
>         cls: 'rootnode',
>         singleClickExpand: true,
>         expanded: false,
>         checked: false,
>         listeners: {
>     'checkchange' :  function(node, checked)
>     {
>         // If a parent node is unchecked, uncheck all the children
>         if (node.getUI().isChecked()) {
>             node.expand();
>             node.eachChild(function(child){
>               child.ui.toggleCheck(true);
>             });
>         }
>         if (!node.getUI().isChecked())
>         {
>             node.expand();
>             node.eachChild(function(child) {
>                 child.ui.toggleCheck(false);
>             });
>         }
>     }
>   },
>         loader:
>         {
>             filter: function(record)
>             { 
>               if (record.data.title == 'Base Layers')
>                     return true; 
>             }
>             }
>         });
>  
>  
> layerRoot_Legend.appendChild(layerList_Base);
>  
>  
>  
>  
>  
>  
> 
> This e-mail is intended for the original recipient(s) only. If you have received it in error, please advise the sender and delete this message.
> 
> _______________________________________________
> Users mailing list
> Users at geoext.org
> http://www.geoext.org/cgi-bin/mailman/listinfo/users

-- 
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.



[This message has been scanned for security content threats and viruses.]

[The City of Red Deer I.T. Services asks that you please consider the environment before printing this e-mail.]




_______________________________________________
Users mailing list
Users at geoext.org
http://www.geoext.org/cgi-bin/mailman/listinfo/users


[This message has been scanned for security content threats and viruses.]

[The City of Red Deer I.T. Services asks that you please consider the environment before printing this e-mail.]






More information about the Users mailing list