Hi all,

We have a few weather observation layers that include many attributes, and we 
use several TextSymbolizers with custom fonts, rotations, anchor points, etc. 
to generate a complex icon that graphically represents several attributes' 
values at the same time [see attached GetMap]. Unfortunately, the 
GetLegendGraphic service does not generate a useful legend out of the box for 
these styles [see attached GetLegendGraphic]. The icons for these layers are so 
complex that a legend like 
[http://visual.merriam-webster.com/images/earth/meteorology/station-model.jpg] 
would be more useful than a vertical listing of the rules.

We are looking to patch GeoServer to do two things:
1) Point the LegendURL in the GetCapabilities to an ExternalGraphic.
2) Implement the LegendGraphic for Rules in SLD.

I have already started looking into each patch, and I think I have a general 
approach to each.

1) Capabilities_1_3_0_Transformer.handleLegendURL() already takes a LegendInfo 
parameter, but Capabilities_1_3_0_Transformer.handleStyles() always passes in 
null. I was thinking we could add a LegendInfo to StyleInfo to persist the 
ExternalGraphic information. But I'm not sure on the details of this. Would I 
be able to put the LegendInfo directly into the StyleInfo XML file or would 
there need to a separate file with references between them?

2) The LegendGraphic element in Rules is part of the SLD spec, but it does not 
appear (to me) to be implemented in GeoServer. While using the debugger, in 
BufferedImageLegendGraphicBuilder.buildLegendGraphic(), a LegendGraphic that is 
included in your SLD is accessible by calling applicableRules[i].getLegend(). 
But that never happens in the actual code so it never gets used. I was looking 
to just paint the GraphicLegend there, but the shapePainter.paint() method that 
is used there takes a Style2D object and I haven't been able to figure out how 
to convert a GraphicLegend to a Style2D object or perhaps use a different paint 
method?

I think these would be useful additions for the whole community and I 
appreciate any feedback or recommendations on this. Part of the tasking is to 
commit this back to GeoServer source.


Thanks,
Yancy Matherne
Software Developer

Geocent, LLC
111 Veterans Blvd., Suite 1600
Metairie, LA  70005
O:  (504) 831-1900
E:  [email protected]
http://www.geocent.com

<<attachment: GetLegendGraphic.png>>

<<attachment: GetMap.png>>

------------------------------------------------------------------------------
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
_______________________________________________
Geoserver-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to