Hi,

It seems the for Mapserver the group is queryable if all the layers in the 
group are queryable. Having one non-queryable layer in the group makes the 
whole group non-queryable. Geoserver used to do the same but now it does the 
opposite: if at least one layer in the group is queryable then the group is as 
well.
https://osgeo-org.atlassian.net/browse/GEOS-7293

If user makes GetFeatureInfo request for such mixed layer Geoserver is sending 
results from the queryable layers without sending exceptions about 
non-queryable layers. This is very user and admin friendly behavior but 
probably difficult to implement in Mapserver. Perhaps we could still get the 
queryable attribute? Logic should correspond with the current implementation: 
if every layer in the group and in the subgroups is queryable, set 
queryable="1", otherwise set queryable="0".

There seems to be a related QGIS issue https://hub.qgis.org/issues/5602.

-Jukka Rahkonen-

Lime, Steve D wrote:


Looking at mapwms.c it doesn't look like it. The code that outputs basic groups 
just outputs a plain <Layer> tag (L3345) with no attributes. It does look like 
that, at least for simple groups, it could be possible to do what you're asking 
by adding a private isGroupQueryable() function that would call 
msIsLayerQueryable() whenever a layer's group name matches the target and would 
return true accordingly. Not sure how that would work with subgroup support 
though.

Steve

From: mapserver-users [mailto:[email protected]] On 
Behalf Of Rahkonen Jukka (MML)
Sent: Monday, January 04, 2016 9:44 AM
To: Mapserver-Users 
([email protected]<mailto:[email protected]>) 
<[email protected]<mailto:[email protected]>>
Subject: [mapserver-users] How to set queryable=1 for a GROUP layer?

Hi,

I have a layer group, let's say "group_1", where all the sub-layers are 
queryable.  The group layer is also effectively queryable and GetFeatureInfo 
works if I use &QUERY_LAYERS=group_1. The problem is that the group layer is 
not announced announced as queryable in the GetCapabilities

<Layer>
<Name> group_1</Name>
<Title> group_1</Title>
...
       <Layer queryable="1" opaque="0" cascaded="0">
       <Name> sub_layer</Name>
    ....


I would like to see it as:
<Layer queryable="1">
<Name> group_1</Name>
<Title> group_1</Title>
....
          <Layer queryable="1" opaque="0" cascaded="0">
          <Name> sub_layer</Name>
          ....


Without queryable attribute I can't make GetFeatureInfo to work when I am 
cascading it with Geoserver. By reading the WMS 1.1.1 standard I feel that 
GeoServer is behaving as it is supposed to work: if the layer is not announced 
to be queryable then it is not queryable. I can't find any mention in the WMS 
standard that a group layer should behave in a different way than the normal 
layers.

7.1.4.6 Layer Attributes
A <Layer> may have zero or more of the following XML attributes: queryable, 
cascaded,
opaque, noSubsets, fixedWidth, fixedHeight. All of these attributes are 
optional and
default to 0

7.1.4.6.1 Queryable layers
A Layer is said to be "queryable" if the server supports the GetFeatureInfo 
operation on
that Layer. A server may support GetFeatureInfo on some of its layers but not 
on all. A
server shall issue a Service Exception (code="LayerNotQueryable") if 
GetFeatureInfo is
requested on a Layer that is not queryable.

Is there any way to add the queryable="1" attribute to a layer group?

-Jukka Rahkonen-

_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to