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

Reply via email to