[Qgis-user] Wrong retrieving of wms legend

aperi2007 aperi2007 at gmail.com
Sat Sep 3 11:42:52 PDT 2016


Hi Richard,


I tested also the QGIS 2.8 and the QGIS 2.12 no one of them has this issue.

 >Bingo: that is the one we are actually retrieving, the parent node's

>style and legend.
>
>So: not sure if that is desired behaviour... at least not for a legend..

Ok, now is more clear what is happened.

The "rt_ofc" is the name of all the wms service.
So apply-ing the value "rt_ofc" to the layers parameter mean ask to the 
wms server to send the response for ALL the layers available in the service.

So the problem more probably is that qgis is failing to parse the 
layername stopping it at the dot character.

The QGIS 2.8 and 2.12 don't fail to parse these wms layersname.
So it is due to some evolution put in the last qgis.

The "rt_oc" part of the layer name is also the name of all the wms service.

This will cause to receive the legend of ALL the layers.

A.



Il 03/09/2016 20:03, Richard Duivenvoorde ha scritto:
> Ok, at first the problem seemed the dot in the layernames:
>
> This is the GetMap request QGIS fires off:
>
> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc&map_resolution=91&language=ita&&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=1063072.194008157123,5185232.179659257643,1388677.251798849553,5543677.86921980232&CRS=EPSG:3857&WIDTH=518&HEIGHT=569&LAYERS=rt_ofc.10k54&STYLES=&FORMAT=image/png&DPI=96&MAP_RESOLUTION=96&FORMAT_OPTIONS=dpi:96&TRANSPARENT=TRUE
>
> as you see: LAYERS=rt_ofc.10k54
>
> This is the GetLegendGraphic url created by QGIS:
>
> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc&map_resolution=91&language=ita&version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=rt_ofc&format=image/png&STYLE=default&&TRANSPARENT=true
>
> NOTE: layer=rt_ofc
>
> (all seen in the debug info on QGIS on Linux (Debug)):
>
> Which SHOULD be:
>
> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc&map_resolution=91&language=ita&version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=rt_ofc.10k54&format=image/png&STYLE=default&&TRANSPARENT=true
>
> NOTE, I edited: layer=rt_ofc.10k54
>
> Mmm, not much of an legend, but as least NOT an image of all (vector)
> layer legends...
>
> So crux is: IF a layer parameter has a dot in it's name, only the first
> part is used as parameter....
>
> BUT: what is the GetLegendGraphic url advertised by the server:
>
> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc&request=GetCapabilities&service=WMS
>
> Mmm, actually no style/LegendURL advertised :-(
>
> https://github.com/qgis/QGIS/blob/master/src/providers/wms/qgswmsprovider.cpp#L249
>
> points to pickLegend:
>
> https://github.com/qgis/QGIS/blob/master/src/providers/wms/qgswmsprovider.cpp#L227
>
> which looks ok:
>
> BUT apparently it picks the style of the PARENT-NODE of the layer: THAT
> one has
>
> <OnlineResource xlink:type="simple"
> xlink:href="http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc&map_resolution=91&language=ita&version=1.3.0&service=WMS&request=GetLegendGraphic&sld_version=1.1.0&layer=rt_ofc&format=image/png&STYLE=default"/>
>
> Bingo: that is the one we are actually retrieving, the parent node's
> style and legend.
>
> So: not sure if that is desired behaviour... at least not for a legend..
>
> I think what QGIS does is 'inheriting' default styles from parent nodes.
> In this case that is plain wrong.
>
> Copy/paste this in an QGIS issue?
>
> Maybe for the getLegend url, the style should not be inherited?
> Anybody other ideas?
>
> Regards,
>
> Richard Duivenvoorde
>
>
> On 03-09-16 16:08, Andrea Peri wrote:
>> Hi Richard.
>> Effectivelly I tested your wms and using it the legend is correctly
>> retrieved only for the layer choose.
>> I use qgis 2.16.1.
>> After I re-test my original url:
>> (this)
>> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc
>>
>> And again I see the qgis retrieve ALL the legend of all the layers.
>> I tested other wms of our set of wms service and seem only this has
>> that problem.
>>
>> So I do some more proof tested.
>>
>> And found where is the ISSUE.
>> QGIS wrong to get the legend when the layer wms requested HAS NOT A LEGEND.
>> Infact the issu happened when I ask any layer of our wms that is a
>> RASTER LAYER with no legend defined.
>> Instead not happened when the layer wms is of a vector dataset (where
>> the legend happened).
>>
>> SO If you whould test and see the issue you should use our wms service:
>> http://www502.regione.toscana.it/wmsraster/com.rt.wms.RTmap/wms?map=wmsofc
>>
>> and choose the layer
>> rt_ofc.1954
>>
>> that return the orthophoto imagery of the year 1954.
>> With this layer the qgis will retrieve ALL the legends of the wms service.
>>
>> Instead if you choose the layer
>> rt_ofc.1954.qu
>> that is a vector dataset (quadre of union)
>> qgis correctly retrieve only its own legend.
>>
>> Please can you confirm this ?
>>
>> Thx
>>
>> A.
>>
>>
>>
>>
>> 2016-09-03 9:51 GMT+02:00 Richard Duivenvoorde <rdmailings at duif.net>:
>>> On 31-08-16 21:10, Andrea Peri wrote:
>>>> Hi,
>>>> I notive that in the qgis 2.14.5 and in the qgis 2.16.1
>>>> when adding a layer wms choosing from a list of layers available in
>>>> the wms service connected,
>>>> qgis retrieve as legend of the layer ALL the legends of all the wms
>>>> layer available in the wms service.
>>>> Using the 2.8 QGIS version, the legend is retrieve correctly (only the
>>>> layer choosed).
>>>>
>>>> Someone can confirm this as an issue ?
>>> Hi Andrea,
>>>
>>> nope, I have 2.16.1 here, and for example this wms:
>>>
>>> https://geodata.nationaalgeoregister.nl/bestuurlijkegrenzen/ows?SERVICE=WMS&
>>>
>>> I can choose either provincies or landsgrenzen (provinces or country
>>> borders), from that same server and both have their own legend.
>>>
>>> Do you have a WMS url for which this happens for you?
>>>
>>> What if you look at the capabilities of that service and do the
>>> getLegendGrapicRequest by hand. Is it also wrong?
>>>
>>> Else: create a good issue, with url's screendumps etc etc
>>>
>>> Regards,
>>>
>>> Richard Duivenvoorde
>>>
>>
>>




More information about the Qgis-user mailing list