[Mapserver-users] GetLegendGraphic questions

Yewondwossen Assefa assefa at dmsolutions.ca
Fri May 7 15:02:46 EDT 2004


Hi There,

 From reading the specs, my interpretation of the GetLegendGraphic is 
that It is supposed to return one image (icon) representing the styles 
used to render a particular layer.  I don't think It is meant to return 
an image  containing all the icons for every class that is found in the 
layer. (If It was implemented that way, It would be impossible for a 
user to specify adequattly the the width/heigh of the image since he 
does not really know how many classes are in the layer).

  The other note is that all the classes are drawn on top of each other. 
Here again the implmentation is based on my interpretaion of the specs 
(sld1.0 section 12 Map Legends) where the mention the following for the 
RULE parameter of the GetLegendGraphic request:

   "Rule of style to produce legend graphic for, if applicable. In the
case that a style has multiple rules but no specific rule is selected,
then the map server is obligated to produce a graphic that is
representative of all of the rules of the style."

  Since we do not support RULE for now, drawing all the classes seemed 
to be the closest interpretation. When/If RULE is supported, the user 
will have the option to use it to draw a particular class.


Later,




Emil Zegers wrote:

> Hello Bart,
> 
> Don't know if this is the cause but when you look in maplegend.c msDrawLegendIcon is called in the else part if class is NULL (if class is NULL all classes should be drawn):
> 
>   // Call drawLegendIcon with destination (0, 0)
>   // Return an empty image if lp==NULL || class=NULL 
>   //(If class is NULL draw the legend for all classes. Modifications done
>   // Fev 2004 by AY)
>   if (lp) {
>     msClearLayerPenValues(lp); // just in case the mapfile has already been processed
>     if (class) {
>       msDrawLegendIcon(map, lp, class, width, height, image->img.gd, 0, 0);
>     }
>     else {
>       for (i=0; i<lp->numclasses; i++) {
>         msDrawLegendIcon(map, lp, &lp->class[i], width, height, image->img.gd, 0, 0);
>       }
>     }
>   }
> 
> But doesn't it clip every image on top on the former one like this with dstX en dstY set to 0?
> 
> Regards,
> 
> Emil Zegers
> 
> 
> 
>>>><bartvde at xs4all.nl> 05/07/04 01:38pm >>>
> 
> Hi list,
> 
> I have some questions about the GetLegendGraphic operation in Mapserver.
> 
> I have a layer in my MAP file which has 5 classes, but when performing a
> GetLegendGraphic request I only get an image of the last class defined.
> Should I not get an image of all classes?
> 
> Also, how do you get the "text labels" for the specific classes, e.g.
> "0-20%" next to the symbols?
> 
> Maybe I am missing something in my LAYER definition?
> 
> This is the request I am using:
> http://myserver/cgi-bin/mapserv.exe?map=/ms4w/apps/zulte/map/zulte_server..map&layer=kwelder_2000&version=1.1.1&request=GetLegendGraphic&format=image/png 
> 
> This is my LAYER definition:
> 
>   LAYER
> 
>     METADATA
>       WMS_TITLE "2000_kwelder"
>       WFS_TITLE "2000_kwelder"
>       WMS_ABSTRACT "2000_kwelder"
>       WMS_SRS "epsg:28992"
>     END
>     NAME "kwelder_2000"
>     CONNECTIONTYPE OGR
>     TILEINDEX "2000.shp"
> 
>     SIZEUNITS PIXELS
>     STATUS ON
>     TOLERANCE 3
>     TOLERANCEUNITS PIXELS
>     TYPE POLYGON
>     DUMP TRUE
>     TEMPLATE "blank.html"
>     UNITS METERS
>     CLASSITEM "Kwelder_to"
>     CLASS
>     	EXPRESSION (([Kwelder_to] > 0) AND ([Kwelder_to] <= 20))
>     	NAME "0-20%"
>     	COLOR 254 255 212
>     END
>     CLASS
>     	EXPRESSION (([Kwelder_to] > 20) AND ([Kwelder_to] <= 40))
>     	NAME "21-40%"
>     	COLOR 255 218 143
>     END
>     CLASS
>     	EXPRESSION (([Kwelder_to] > 40) AND ([Kwelder_to] <= 60))
>     	NAME "41-60%"
>     	COLOR 255 151 41
>     END
>     CLASS
>     	EXPRESSION (([Kwelder_to] > 60) AND ([Kwelder_to] <= 80))
>     	NAME "61-80%"
>     	COLOR 217 95 13
>     END
>     CLASS
>     	EXPRESSION (([Kwelder_to] > 80) AND ([Kwelder_to] <= 100))
>     	NAME "81-100%"
>     	COLOR 153 54 5
>     END
>   END
> 
> Thanks in advance for any info on this subject.
> 
> Best regards,
> Bart
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu 
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users 
> 
> __________
> VChecked
> 
> 
> ______________________________________________________
> 
>  This message has been checked for all known viruses
> ______________________________________________________
> 
> _______________________________________________
> Mapserver-users mailing list
> Mapserver-users at lists.gis.umn.edu
> http://lists.gis.umn.edu/mailman/listinfo/mapserver-users
> 


-- 
----------------------------------------------------------------
Assefa Yewondwossen
Software Analyst

Email: assefa at dmsolutions.ca
http://www.dmsolutions.ca/

Phone: (613) 565-5056 (ext 14)
Fax:   (613) 565-0925
----------------------------------------------------------------





More information about the mapserver-users mailing list