Addendum. I discovered what problem was.
OWSLib generates an URL like this: http:// ....WFSHOST .../&FILTER=<ogc:PropertyIsLike wildCard="%" singleChar="_" escapeChar="\" matchCase="false"><ogc:PropertyName>nome_via</ogc:PropertyName><ogc:Literal>VIA A%</ogc:Literal></ogc:PropertyIsLike> but it seems that QGIS Server doesn't like this. We should add <ogc:Filter> and </ogc:Filter> at start and the end of the FILTER value: http:// ....WFSHOST .../&FILTER=<ogc:Filter><ogc:PropertyIsLike wildCard="%" singleChar="_" escapeChar="\" matchCase="false"><ogc:PropertyName>nome_via</ogc:PropertyName><ogc:Literal>VIA A%</ogc:Literal></ogc:PropertyIsLike></ogc:Filter> with the last URL, the WFS query works! Il giorno mar 11 giu 2019 alle ore 14:18 Luca Manganelli < [email protected]> ha scritto: > Hello, > > I'm trying to make this python 3 code with OwsLib working. > In particular, I'm searching a road with the name starting by "VIA F.", > but QGIS Server returns me a road named VIA MATTEOTTI... > > Does QGIS Server support PropertyIsLike in WFS? > > > #!/usr/bim/python3 > from owslib.wfs import WebFeatureService > from owslib.etree import etree > from owslib.fes import PropertyIsEqualTo, PropertyIsLike, BBox > > wfs = WebFeatureService(url='https://cartografia.comunelavis.it/wms/cbase > ') > > filt = PropertyIsLike(propertyname='nome_via', literal='VIA F.%', > wildCard='%', matchCase=False) > filterxml = etree.tostring(filt.toXML()).decode("utf-8") > > feature = wfs.getfeature(typename=['Civici'], maxfeatures=1, > filter=filterxml) > gml = etree.parse(feature) > print(etree.tostring(gml)) > -- Luca Manganelli Assistente informatico Servizio Innovazione e Sistemi digitali Via Ezio Maccani 148 38121 Trento (TN)
_______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
