[Users] Add all geoserver layers automatically

Andreas Hocevar ahocevar at opengeo.org
Sat Apr 20 09:56:13 CEST 2013


Yes, you need to provide a complete capabilities url for the url parameter:

    http://localhost:8080/geoserver/wms?SERVICE=WMS&REQUEST=GetCapabilities

Also note that if your GeoServer is on the same host as your
application (http://localhost:8080/ in this case), you can use

    /geoesrver/wms?SERVICE=WMS&REQUEST=GetCapabilities

This will avoid cross domain scripting issues.

Andreas.

On Thu, Apr 18, 2013 at 5:54 PM, Christoph Mayrhofer
<christoph.mayrhofer at drei.at> wrote:
> Hi François,
>
> I just tried it with the following code, but there are no nodes listed in
> the tree.
> Could the url parameter be the problem?: http://localhost:8080/geoserver/wms
>
> var root = new Ext.tree.AsyncTreeNode({
>    text: 'All Layers',
>    loader: new GeoExt.tree.WMSCapabilitiesLoader({
>       url: 'http://localhost:8080/geoserver/wms',
>       layerOptions: {buffer: 0, singleTile: true, ratio: 1},
>       layerParams: {'TRANSPARENT': 'TRUE'},
>       // customize the createNode method to add a checkbox to nodes
>       createNode: function(attr) {
>          attr.checked = attr.leaf ? false : undefined;
>          return
> GeoExt.tree.WMSCapabilitiesLoader.prototype.createNode.apply(this, [attr]);
>      }
>    })
> });
>
> tree = new Ext.tree.TreePanel({
>    root: root,
>    region: 'west',
>    width: 250,
>    listeners: {
>       // Add layers to the map when ckecked, remove when unchecked.
>       // Note that this does not take care of maintaining the layer order on
> the map.
>      'checkchange': function(node, checked) {
>          if (checked === true) {
>              mapPanel.map.addLayer(node.attributes.layer);
>          } else {
>              mapPanel.map.removeLayer(node.attributes.layer);
>          }
>       }
>    }
> });
>
> regards, Chris
>
> On Thu, 18 Apr 2013 10:25:19 -0400, "Valiquette,Francois [Montreal]"
> <Francois.Valiquette at ec.gc.ca> wrote:
>
> Hello Chris,
>
>
>
> Yes you can, you need to make a query on your server to get the
> GetCapabilities XML (a list of all the available layers and options).
>
> The GeoExt.data.WMSCapabilitiesStore can make the query for you by giving it
> an URL. Then, it will return you a set of records. Afterward with the
> records, you can generate manually a Tree for a greater flexibility.
>
> Otherwise, I think you can use GeoExt.tree.WMSCapabilitiesLoader to generate
> the Tree automatically for you.
>
>
>
> Here is an exemple of a valid XML file :
>
> http://api.geoext.org/1.1/examples/data/wmscap.xml
>
>
> François
>
>
>
>
>
> De : users-bounces at geoext.org [mailto:users-bounces at geoext.org] De la part
> de Christoph Mayrhofer
> Envoyé : 18 avril 2013 10:05
> À : users at geoext.org
> Objet : [Users] Add all geoserver layers automatically
>
>
>
> Hi,
>
> I saw some examples that had a List of available layers and a button that
> you could click to add a selected layers to the map.
> Is it possible to have all layers on a Geoserver instance automatically
> added to the map.
> This would eliminate the need to change the JS code when a new layer is
> added to Geoserver.
>
> regards, Chris
>
>
>
>
>
> _______________________________________________
> 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.


More information about the Users mailing list