Hi Stefano, That’s exactly what I’m experiencing. And I tried it, so I can confirm your guess: if the Style Layer Descriptor contains more than 1 UserStyle, the legend is generated based on the first one in the SLD.
So you can’t specify which UserStyle to generate a legend from, unless if you specify the SLD document. I don’t want to duplicate the styles in the www/styles directory, so I’m wondering if it’s possible to refer to a local style using the SLD-parameter. I already tried the following request but without the desired result :( wms?request=GetLegendGraphic&version=1.0.0&format=image/png&strict=false&style=layerLegend&width=20&height=20&SLD=layer.sld wms?request=GetLegendGraphic&version=1.0.0&format=image/png&strict=false&style=layerLegend&width=20&height=20&SLD=file:/layer.sld wms?request=GetLegendGraphic&version=1.0.0&format=image/png&strict=false&style=layerLegend&width=20&height=20&SLD=file:/styles/layer.sld Kind regards, Roel De Nijs Senior Java Developer Van: Stefano Costa [mailto:stefano.co...@geo-solutions.it] Verzonden: donderdag 4 juni 2015 15:24 Aan: Roel De Nijs CC: geoserver-users@lists.sourceforge.net Onderwerp: Re: [Geoserver-users] Get legend from SLD with multiple user styles Hi Roel, Il giorno gio, 04/06/2015 alle 12.17 +0000, Roel De Nijs ha scritto: I have a layer.sld with 2 user styles (layer and layerLegend). I want to create a legend of the layerLegend user style. But when using the following request, I get a runtime exception: java.lang.NullPointerException: request.getStyle() wms?request=GetLegendGraphic&version=1.0.0&format=image/png&strict=false&style=layerLegend&width=20&height=20 I believe you're misunderstanding the meaning of the "style" parameter: it is not supposed to be a UserStyle name, but the name of a Style Layer Descriptor (basically, what you write in the "Name" field when you create a new style through GeoServer's web UI). To my knowledge, there is no way to specify which UserStyle inside the SLD document will be used (I guess the first one is picked if multiple are present, didn't try though). From chapter "Introduction to SLD" in GeoServer's documentation: "A style document specifies a single named layer and a user style for it". If I understand correctly, this sentence implies that one should not put multiple user styles in the same SLD document, but rather create multiple SLD documents containing one User Style each. When I copy the layer.sld to the www/styles directory in the data directory and I add the SLD-parameter to the previous request, the expected legend graphic is created successfully. wms?request=GetLegendGraphic&version=1.0.0&format=image/png&strict=false&style=layerLegend&width=20&height=20&SLD=http://localhost:8080/geoserver/www/styles/layer.sld That's because you're specifying which SLD document should be used via the "SLD" parameter. Hope this helps. -- Best regards, Stefano Costa == GeoServer Professional Services from the experts! Visit http://goo.gl/it488V for more information. == Dott. Stefano Costa Senior Software Engineer GeoSolutions S.A.S. Via Poggio alle Viti 1187 55054 Massarosa (LU) Italy phone: +39 0584 962313 fax: +39 0584 1660272 http://www.geo-solutions.it http://twitter.com/geosolutions_it ------------------------------------------------------- AVVERTENZE AI SENSI DEL D.Lgs. 196/2003 Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003. The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc. ________________________________ Volg Aquafin op Facebook<https://www.facebook.com/AquafinNV> | Twitter<https://twitter.com/aquafinnv> | YouTube<http://www.youtube.com/channel/UCk_4P5BJ-MtEEDCkCsR_KqQ?feature=mhee> | LinkedIN<http://www.linkedin.com/company/aquafin/products> Disclaimer: zie www.aquafin.be<http://www.aquafin.be> P Denk aan het milieu. Druk deze mail niet onnodig af. [http://www.aquafin.be/ISOlogo.png] <http://pers.aquafin.be/aquafin-behaalt-eerste-belgische-iso55001-certificaat#>
------------------------------------------------------------------------------
_______________________________________________ Geoserver-users mailing list Geoserver-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-users