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
