I am trying to load a single vector layer and be able to turn on and off 
visibility of individual features within that layer from a layer tree.

For example, load all the United States in one layer and turn on and off each 
state from the layer tree. 

I would like to display this as a grouped layer for organization. Here is what 
I have come up with so far. Is there a better way to do this?

var layerList = new GeoExt.tree.LayerNode({
        text: 'The United States',
        expanded: true,
        layer: usa, // refers to a vector layer using HTTP protocol to get 
GeoJSON. 
        leaf: false,
        children : [{
                text: "Alabama",
                leaf: true,
                fid:1,
                checked: false
        },{
                text: "Alaska",
                leaf: true,
                fid:2,
                checked: false
        }, {
        //...  load other fifty states
        }]
});

var layerTree = new Ext.tree.TreePanel({
        title: 'Map Layers',
        root: layerList,
        autoScroll:true,
        listeners: {
                'checkchange': function(node, checked){
                        var tempfid = node.attributes.fid;
                        if(checked){
                                
node.parentNode.attributes.layer.getFeatureByFid(tempfid).renderIntent = 
'default'; 
                                // I am setting visibility with renderIntent 
because styles are reset when layer is redrawn form panning or zooming.
                                node.parentNode.attributes.layer.redraw();
                        }else{
                                
node.parentNode.attributes.layer.getFeatureByFid(tempfid).renderIntent = 
'delete';
                                node.parentNode.attributes.layer.redraw();
                        }
                }
        }
});

I can't load individual layers for each state because I intend to do this with 
other layers and OpenLayers can only display so many layers at a time, also 
requests would become very heavy.

I am also using featureserver for my requests which does not have built in 
GetCapabilities functionality.

I have found an example in OpenLayers that achieves what I am trying to do 
here: 
http://gis.ibbeck.de/ginfo/apps/OLExamples/OL26/examples/select-feature-with-function.html



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

Reply via email to