Hi,
the easiest thing to do is indeed just create one WMS layer:
var villages = new OpenLayers.Layer.WMS(
"Villages",
"http://10.0.102.11:8080/geoserver/wms", {
layers: 'cite:tib_townships,cite:tib_villages,cite:chn_villages',
transparent: true
}, {
isBaseLayer: false,
displayInLayerSwitcher: true
}
);
Then, you could have an object for your options:
var options = {
"cite:tib_townships": {visibility: true, text: "Townships (Tibetan trans)"},
"cite:tib_villages": {visibility: true, text: "Villages (Tibetan trans)"},
"cite:chn_villages": {visibility: false, text: "Villages (Chinese trans)"}
};
Now in your tree, add the node for the WMS layer, and configure a loader with a
custom createNode method that applies your options:
layerRoot.appendChild(new GeoExt.tree.LayerNode({
layer: villages,
isLeaf: false,
loader: {
param: "LAYERS",
createNode: function(attr) {
attr.layer.setVisibility(options[attr.layer.name].visibility);
attr.text = options[attr.layer.name].text;
attr.iconCls = "your_icon_class_here";
GeoExt.tree.LayerParamLoader.prototype.createNode.call(this, attr);
}
}
});
The iconCls is for your custom icon. See the ExtJS documentation for
Ext.tree.TreeNode for an explanation.
This should cover about all you were asking.
Regards,
Andreas.
On Sep 22, 2010, at 19:37 , IT Intern wrote:
> I sincerely apologize about the previous emails :(, they were sent by
> accident...
>
> Hello GeoExt List,
>
> I am new to GeoExt and I am grateful such a library has been created. Now I
> am trying to make a layer tree for my map browser. I got some ideas on how
> to create a general one, but there are some options I'd like to have that I
> cannot find. I do not know if it is because they do not exist or I am just
> unaware.
>
> Here's what I'd like to do:
>
> 1. I'd like to be able to have a few layers declared by variables as such:
>
> var tib_townships = new OpenLayers.Layer.WMS(
> "Townships (Tibetan trans)",
> "http://10.0.102.11:8080/geoserver/wms", {layers: 'cite:tib_townships',
> transparent: true}, {isBaseLayer: false, displayInLayerSwitcher: true,
> visibility: true}
> );
>
> var chn_villages = new OpenLayers.Layer.WMS(
> "Villages (Chinese trans)",
> "http://10.0.102.11:8080/geoserver/wms", {layers: 'cite:chn_villages',
> transparent: true}, {isBaseLayer: false, displayInLayerSwitcher: true,
> visibility: false}
> );
>
> var tib_villages = new OpenLayers.Layer.WMS(
> "Villages (Tibetan trans)",
> "http://10.0.102.11:8080/geoserver/wms", {layers: 'cite:tib_villages',
> transparent: true}, {isBaseLayer: false, displayInLayerSwitcher: true,
> visibility: true}
> );
>
> and then I'd like to be able to add these layers to a single node:
>
> var layerRoot = new Ext.tree.TreeNode({
> text: "All Layers",
> expanded: true
> });
>
> layerRoot.appendChild(new GeoExt.tree.LayerNode({
> text: "Tibetan Villages",
> layer: tib_villages,
> //RIGHT HERE, is there a way to add all three layers here using those
> variables???
> loader: {param: "LAYERS"},
> expanded: true
> }));
>
> I know my other option is to create a Openlayer WMS with all three layers in
> it sort of as a group, but I run into the same problem there that I am unable
> to add these variables but have to add the layers directly from the wms and
> then they do not have the options I have set in my code :-/
>
>
> 2. I'd also like to be able to change the names that appear for the layers
> that are in the nodes. Instead of the wms store:layer, I'd like something
> custom as "my layer". Is there any property for this anywhere???
>
> 3. I'd like to change the icons of the default layer tree. Maybe instead of
> folders etc, something like my own image etc..
>
> I appreciate all the feedback. I have been struggling with layer trees and I
> would really like to do something awesome with them for my app.
>
> Thanks,
>
> elshae
>
> _______________________________________________
> Users mailing list
> [email protected]
> http://www.geoext.org/cgi-bin/mailman/listinfo/users
--
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.
_______________________________________________
Users mailing list
[email protected]
http://www.geoext.org/cgi-bin/mailman/listinfo/users