<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi Paul</p>
<p>Thanks - now I know that I have to use SLD_BODY for the case where the SLD is in the URL.</p>
<p>Another QGIS-Server specific question:</p>
<p>Can I count on it that the SLD output by QGIS server with the GetStyles request can also be consumed again by QGIS server? What about complex styles (e.g. something with a style that can't easily be represented by SLD). If I first consume the styles from QGIS server, then filter and send back, would the complex styles potentially be lost/destroyed?</p>
<p>Again: our intent here is merely to filter categories, not to change the styles.</p>
<p>Thanks,<br />Andreas</p>
<p id="reply-intro">On 2019-04-09 16:28, pblottiere wrote:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0"><!-- html ignored --> <!-- head ignored --><!-- meta ignored -->
<p><tt>Hi Andreas,</tt></p>
<p><tt> </tt></p>
<p><tt>> </tt><tt><span class="html-tag">Can you point me to an example how to create a valid GetMap request with an SLD submitted?</span></tt></p>
<p><tt><span class="html-tag"> </span></tt></p>
<p><tt>There's a basic example in unit tests: <a class="moz-txt-link-freetext" href="https://github.com/qgis/QGIS/blob/master/tests/src/python/test_qgsserver_wms_getmap.py#L1309-L1325" target="_blank" rel="noopener noreferrer">https://github.com/qgis/QGIS/blob/master/tests/src/python/test_qgsserver_wms_getmap.py#L1309-L1325</a><br /></tt></p>
<p><tt> </tt></p>
<p><tt>Regards,</tt><tt><br /></tt></p>
<p><tt>Paul</tt></p>
<p><br /></p>
<div class="moz-cite-prefix">On 4/9/19 4:14 PM, Andreas Neumann wrote:</div>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<p>Hi,</p>
<p>I did some test:</p>
<p>Here is a long URL with the SLD (originally sent by QGIS server, stripped away some RULES manually) and sending it back in a GetMap request:</p>
<p><a href="https://services.geo.zg.ch/ows-oereb/Grundwasserschutz?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=2682932,1225299,2684213,1226054&CRS=EPSG:2056&WIDTH=1615&HEIGHT=952&LAYERS=ch.zg.grundwasserschutz.gwszonen&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE&SLD=%3CStyledLayerDescriptor+xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld%22+xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22+xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22+xsi%3AschemaLocation%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld+http%3A%2F%2Fschemas.opengis.net%2Fsld%2F1.1.0%2FStyledLayerDescriptor.xsd%22+xmlns%3Ase%3D%22http%3A%2F%2Fwww.opengis.net%2Fse%22+version%3D%221.1.0%22+xmlns%3Aogc%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0D%0A+%3CNamedLayer%3E%0D%0A++%3Cse%3AName%3Ech.zg.grundwasserschutz.gwszonen%3C%2Fse%3AName%3E%0D%0A++%3CUserStyle%3E%0D%0A+++%3Cse%3AName%3Edefault%3C%2Fse%3AName%3E%0D%0A+++%3Cse%3AFeatureTypeStyle%3E%0D%0A++++%3Cse%3ARule%3E%0D%0A+++++%3Cse%3AName%3EGrundwasserschutzzone+S1%3C%2Fse%3AName%3E%0D%0A+++++%3Cse%3ADescription%3E%0D%0A++++++%3Cse%3ATitle%3EGrundwasserschutzzone+S1%3C%2Fse%3ATitle%3E%0D%0A+++++%3C%2Fse%3ADescription%3E%0D%0A+++++%3Cogc%3AFilter+xmlns%3Aogc%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0D%0A++++++%3Cogc%3APropertyIsEqualTo%3E%0D%0A+++++++%3Cogc%3APropertyName%3Etyp_code%3C%2Fogc%3APropertyName%3E%0D%0A+++++++%3Cogc%3ALiteral%3ES1%3C%2Fogc%3ALiteral%3E%0D%0A++++++%3C%2Fogc%3APropertyIsEqualTo%3E%0D%0A+++++%3C%2Fogc%3AFilter%3E%0D%0A+++++%3Cse%3APolygonSymbolizer%3E%0D%0A++++++%3Cse%3AFill%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22fill%22%3E%23003bb3%3C%2Fse%3ASvgParameter%3E%0D%0A++++++%3C%2Fse%3AFill%3E%0D%0A++++++%3Cse%3AStroke%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke%22%3E%23000080%3C%2Fse%3ASvgParameter%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke-width%22%3E1%3C%2Fse%3ASvgParameter%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke-linejoin%22%3Ebevel%3C%2Fse%3ASvgParameter%3E%0D%0A++++++%3C%2Fse%3AStroke%3E%0D%0A+++++%3C%2Fse%3APolygonSymbolizer%3E%0D%0A++++%3C%2Fse%3ARule%3E%0D%0A+++%3C%2Fse%3AFeatureTypeStyle%3E%0D%0A++%3C%2FUserStyle%3E%0D%0A+%3C%2FNamedLayer%3E%0D%0A%3C%2FStyledLayerDescriptor%3E" target="_blank" rel="noopener noreferrer">https://services.geo.zg.ch/ows-oereb/Grundwasserschutz?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=2682932,1225299,2684213,1226054&CRS=EPSG:2056&WIDTH=1615&HEIGHT=952&LAYERS=ch.zg.grundwasserschutz.gwszonen&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE&SLD=%3CStyledLayerDescriptor+xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld%22+xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22+xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22+xsi%3AschemaLocation%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld+http%3A%2F%2Fschemas.opengis.net%2Fsld%2F1.1.0%2FStyledLayerDescriptor.xsd%22+xmlns%3Ase%3D%22http%3A%2F%2Fwww.opengis.net%2Fse%22+version%3D%221.1.0%22+xmlns%3Aogc%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0D%0A+%3CNamedLayer%3E%0D%0A++%3Cse%3AName%3Ech.zg.grundwasserschutz.gwszonen%3C%2Fse%3AName%3E%0D%0A++%3CUserStyle%3E%0D%0A+++%3Cse%3AName%3Edefault%3C%2Fse%3AName%3E%0D%0A+++%3Cse%3AFeatureTypeStyle%3E%0D%0A++++%3Cse%3ARule%3E%0D%0A+++++%3Cse%3AName%3EGrundwasserschutzzone+S1%3C%2Fse%3AName%3E%0D%0A+++++%3Cse%3ADescription%3E%0D%0A++++++%3Cse%3ATitle%3EGrundwasserschutzzone+S1%3C%2Fse%3ATitle%3E%0D%0A+++++%3C%2Fse%3ADescription%3E%0D%0A+++++%3Cogc%3AFilter+xmlns%3Aogc%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%3E%0D%0A++++++%3Cogc%3APropertyIsEqualTo%3E%0D%0A+++++++%3Cogc%3APropertyName%3Etyp_code%3C%2Fogc%3APropertyName%3E%0D%0A+++++++%3Cogc%3ALiteral%3ES1%3C%2Fogc%3ALiteral%3E%0D%0A++++++%3C%2Fogc%3APropertyIsEqualTo%3E%0D%0A+++++%3C%2Fogc%3AFilter%3E%0D%0A+++++%3Cse%3APolygonSymbolizer%3E%0D%0A++++++%3Cse%3AFill%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22fill%22%3E%23003bb3%3C%2Fse%3ASvgParameter%3E%0D%0A++++++%3C%2Fse%3AFill%3E%0D%0A++++++%3Cse%3AStroke%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke%22%3E%23000080%3C%2Fse%3ASvgParameter%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke-width%22%3E1%3C%2Fse%3ASvgParameter%3E%0D%0A+++++++%3Cse%3ASvgParameter+name%3D%22stroke-linejoin%22%3Ebevel%3C%2Fse%3ASvgParameter%3E%0D%0A++++++%3C%2Fse%3AStroke%3E%0D%0A+++++%3C%2Fse%3APolygonSymbolizer%3E%0D%0A++++%3C%2Fse%3ARule%3E%0D%0A+++%3C%2Fse%3AFeatureTypeStyle%3E%0D%0A++%3C%2FUserStyle%3E%0D%0A+%3C%2FNamedLayer%3E%0D%0A%3C%2FStyledLayerDescriptor%3E</a></p>
<p>The response is:</p>
<div class="line"><span class="html-tag"><ServiceExceptionReport<span class="html-attribute"><span> </span><span class="html-attribute-name">xmlns</span>="<span class="html-attribute-value"><a class="moz-txt-link-freetext" href="http://www.opengis.net/ogc" target="_blank" rel="noopener noreferrer">http://www.opengis.net/ogc</a></span>"</span><span class="html-attribute"><span> </span><span class="html-attribute-name">version</span>="<span class="html-attribute-value">1.3.0</span>"</span>></span></div>
<div class="collapsible-content"><span class="text"></span>
<div id="collapsible1" class="collapsible">
<div class="expanded">
<div class="line"><span class="button collapse-button"></span><span class="html-tag"><ServiceException<span class="html-attribute"><span> </span><span class="html-attribute-name">code</span>="<span class="html-attribute-value">Invalid Parameter</span>"</span>></span></div>
<div class="collapsible-content"><span class="text">SLD ('<StyledLayerDescriptor xmlns=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/sld" target="_blank" rel="noopener noreferrer">"http://www.opengis.net/sld"</a> xmlns:xlink=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/1999/xlink" target="_blank" rel="noopener noreferrer">"http://www.w3.org/1999/xlink"</a> xmlns:xsi=<a class="moz-txt-link-rfc2396E" href="http://www.w3.org/2001/XMLSchema-instance" target="_blank" rel="noopener noreferrer">"http://www.w3.org/2001/XMLSchema-instance"</a> xsi:schemaLocation=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/sldhttp://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd" target="_blank" rel="noopener noreferrer">"http://www.opengis.net/sld http://schemas.opengis.net/sld/1.1.0/StyledLayerDescriptor.xsd"</a> xmlns:se=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/se" target="_blank" rel="noopener noreferrer">"http://www.opengis.net/se"</a> version="1.1.0" xmlns:ogc=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/ogc" target="_blank" rel="noopener noreferrer">"http://www.opengis.net/ogc"</a>> <NamedLayer> <se:Name>ch.zg.grundwasserschutz.gwszonen</se:Name> <UserStyle> <se:Name>default</se:Name> <se:FeatureTypeStyle> <se:Rule> <se:Name>Grundwasserschutzzone S1</se:Name> <se:Description> <se:Title>Grundwasserschutzzone S1</se:Title> </se:Description> <ogc:Filter xmlns:ogc=<a class="moz-txt-link-rfc2396E" href="http://www.opengis.net/ogc" target="_blank" rel="noopener noreferrer">"http://www.opengis.net/ogc"</a>> <ogc:PropertyIsEqualTo> <ogc:PropertyName>typ_code</ogc:PropertyName> <ogc:Literal>S1</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> <se:PolygonSymbolizer> <se:Fill> <se:SvgParameter name="fill">#003bb3</se:SvgParameter> </se:Fill> <se:Stroke> <se:SvgParameter name="stroke">#000080</se:SvgParameter> <se:SvgParameter name="stroke-width">1</se:SvgParameter> <se:SvgParameter name="stroke-linejoin">bevel</se:SvgParameter> </se:Stroke> </se:PolygonSymbolizer> </se:Rule> </se:FeatureTypeStyle> </UserStyle> </NamedLayer> </StyledLayerDescriptor>') cannot be converted into QString</span></div>
<div class="line"><span class="html-tag"></ServiceException></span></div>
</div>
</div>
<span class="text"></span></div>
<div class="line"><span class="html-tag"></ServiceExceptionReport></span></div>
<div class="line"> </div>
<div class="line"><span class="html-tag">So apparently the SLD cannot be converted to a QString. Is my encoding in the URL above wrong or am I missing a required additional parameter?</span></div>
<div class="line"> </div>
<div class="line"><span class="html-tag">Can you point me to an example how to create a valid GetMap request with an SLD submitted?</span></div>
<div class="line"> </div>
<div class="line"><span class="html-tag">Thanks a lot,</span></div>
<div class="line"><span class="html-tag">Andreas</span></div>
<p id="reply-intro">On 2019-04-09 15:38, Andreas Neumann wrote:</p>
<blockquote type="cite" style="padding: 0 0.4em; border-left: #1010ff 2px solid; margin: 0">
<p>Hi,</p>
<p>Does QGIS-Server support SLD styles to filter away RULEs in a GetMap Request?</p>
<p>I would assume, yes, but in what encoding would I submit such an SLD in a GET request? I know that one should rather use POST reqests for such long parameters, but for experimenting, it would be ok to use GET.</p>
<p>The idea would be to allow users to enable/disable categories within a given layer.</p>
<p>The WMS client would first request the available rules with a GetStyles command (that part works fine) and would then filter the RULE (strip away the unwanted RULEs) and resubmit the GetMap with an SLD. Does that work with QGIS server?</p>
<p>I know that one can also use the FILTER parameter, but we want to do it in an OGC compatible way, since the client being developed should work with any OGC compatible WMS server.</p>
<p>Thanks for your reply,</p>
<p>Andreas</p>
<br />
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">_______________________________________________<br />QGIS-Developer mailing list<br /><a href="mailto:QGIS-Developer@lists.osgeo.org" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br />List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br />Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div>
</blockquote>
<p><br /></p>
<br /><fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre">_______________________________________________
QGIS-Developer mailing list
<a class="moz-txt-link-abbreviated" href="mailto:QGIS-Developer@lists.osgeo.org" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a>
List info: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a>
Unsubscribe: <a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></pre>
</blockquote>
<!-- html ignored --><br />
<div class="pre" style="margin: 0; padding: 0; font-family: monospace">_______________________________________________<br />QGIS-Developer mailing list<br /><a href="mailto:QGIS-Developer@lists.osgeo.org" rel="noreferrer">QGIS-Developer@lists.osgeo.org</a><br />List info: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a><br />Unsubscribe: <a href="https://lists.osgeo.org/mailman/listinfo/qgis-developer" target="_blank" rel="noopener noreferrer">https://lists.osgeo.org/mailman/listinfo/qgis-developer</a></div>
</blockquote>
<p><br /></p>

</body></html>