<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.Shkpostityyli17
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.Shkpostityyli18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.Shkpostityyli19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 2.0cm 70.85pt 2.0cm;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FI" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US"><a href="https://osgeo-org.atlassian.net/browse/GEOS-7293">https://osgeo-org.atlassian.net/browse/GEOS-7293</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US">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”.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US">There seems to be a related QGIS issue
<a href="https://hub.qgis.org/issues/5602">https://hub.qgis.org/issues/5602</a>.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><span lang="EN-US">Lime, Steve D wrote:<br>
<br>
<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Steve<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> mapserver-users [<a href="mailto:mapserver-users-bounces@lists.osgeo.org">mailto:mapserver-users-bounces@lists.osgeo.org</a>]
<b>On Behalf Of </b>Rahkonen Jukka (MML)<br>
<b>Sent:</b> Monday, January 04, 2016 9:44 AM<br>
<b>To:</b> Mapserver-Users (<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a>) <<a href="mailto:mapserver-users@lists.osgeo.org">mapserver-users@lists.osgeo.org</a>><br>
<b>Subject:</b> [mapserver-users] How to set queryable=1 for a GROUP layer?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">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<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Layer><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Name> group_1</Name><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Title> group_1</Title><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">       <Layer queryable="1" opaque="0" cascaded="0"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">       <Name> sub_layer</Name><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    ….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I would like to see it as:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Layer queryable="1"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Name> group_1</Name><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><Title> group_1</Title><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">          <Layer queryable="1" opaque="0" cascaded="0"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">          <Name> sub_layer</Name><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">          ….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">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.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">7.1.4.6 Layer Attributes<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">A <Layer> may have zero or more of the following XML attributes: queryable, cascaded,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">opaque, noSubsets, fixedWidth, fixedHeight. All of these attributes are optional and<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">default to 0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">7.1.4.6.1 Queryable layers<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">A Layer is said to be "queryable" if the server supports the GetFeatureInfo operation on<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">that Layer. A server may support GetFeatureInfo on some of its layers but not on all. A<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">server shall issue a Service Exception (code="LayerNotQueryable") if GetFeatureInfo is<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">requested on a Layer that is not queryable.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Is there any way to add the queryable=”1” attribute to a layer group?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">-Jukka Rahkonen-<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>