Currently there's no separate function for drawing a legend item for one layer. However you can temporarily disable including the other layers by setting their layerObj.status to MS_OFF or layerObj.type to MS_LAYER_TYPE.MS_LAYER_QUERY.
<br><br>Best regards,<br><br>Tamas<br><br><br><br><div><span class="gmail_quote">2007/4/23, Jean Michel PIERRET <<a href="mailto:jmp@geosys.com">jmp@geosys.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="blue" lang="FR">
<div>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Hi,</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">1)</span></font></p><span class="q">
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">I guess you should either disable the labelcache for
this layer (layerObj.labelcache = mapscript.MS_OFF ) or call layerObj.drawlabelcache
explicitly right after drawing the shapes.<br>
<br>
</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"> </span></font></p></span>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB">It's ok for the
label with (</span></font><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB">layerObj.labelcache = mapscript.MS_OFF),
drawlabelcache does not exist on layerObj but on mapObj.</span></font></p>
<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 70.8pt; text-indent: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">lobj.labelcache
= <font color="teal"><span style="color: teal;">mapscript</span></font>.MS_OFF;</span></font></p><span class="q">
<p style="margin-left: 70.8pt; text-indent: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">lobj.draw(_lobj.map,
iobj);</span></font></p></span>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">or</span></font></p><span class="q">
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
lobj.draw(_lobj.map, iobj);</span></font></p></span>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> lobj.map.</span></font><span lang="EN-GB">drawlabelcache(iobj);</span></p>
<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">2)</span></font></p><span class="q">
<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">Here
is a function extracted from my previous project for drawing the legend image,
hopefully it applies to your intents fairly enough.<br>
<br>
private Image CreateLegendImage(layerObj layer, int classindex, int width, int
height, int keysizex, int keysizey)<br>
{<br>
using (classObj def_class
= new classObj(null)) // for drawing legend images<br>
{<br>
using
(imageObj image = def_class.createLegendIcon(map, layer, width, height))<br>
{<br>
classObj layerclass = layer.getClass(classindex);<br>
layerclass.drawLegendIcon(layer.map, layer, keysizex, keysizey,
image, <br>
(width - keysizex) / 2, (height - keysizey)
/ 2);<br>
byte[] img = image.getBytes();<br>
using (MemoryStream ms = new MemoryStream(img)) <br>
{<br>
return Image.FromStream(ms);<br>
}<br>
}<br>
}<br>
}<br>
<br>
</span></font></p></span>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB">Your function work but for one class only and
without label, I'm looking for a function which give me the same result
of mapObj.drawLegend with only on layer activate.</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB">Thanks,</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB">Regards.</span></font></p><span class="q">
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;" lang="EN-GB"> </span></font></p>
<div>
<table style="width: 184.5pt;" border="0" cellpadding="0" width="246">
<tbody><tr>
<td style="padding: 0.75pt; width: 147.75pt;" width="197">
<p><b><font color="#eebb22" face="Arial" size="1"><span style="font-size: 9pt; font-family: Arial; color: rgb(238, 187, 34); font-weight: bold;"><a href="mailto:jmp@geosys.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
<font color="#eebb22"><span style="color: rgb(238, 187, 34);">Jean-michel
PIERRET</span></font></a> - Poste 376</span></font></b></p>
</td>
</tr>
<tr>
<td style="padding: 0.75pt; width: 147.75pt;" width="197">
<p><b><font color="#999999" face="Arial" size="1"><span style="font-size: 9pt; font-family: Arial; color: rgb(153, 153, 153); font-weight: bold;">Tel
: +33 (0)5 62 47 80 76</span></font></b><font color="#999999" face="Arial" size="1"><span style="font-size: 9pt; font-family: Arial; color: rgb(153, 153, 153);"><br>
<b><span style="font-weight: bold;">Mail</span></b> : <a href="mailto:jmp@geosys.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"><font color="#336699"><span style="color: rgb(51, 102, 153);">
jmp@geosys.com</span></font></a><br>
</span></font><b><font color="#336699" face="Arial" size="1"><span style="font-size: 9pt; font-family: Arial; color: rgb(51, 102, 153); font-weight: bold;">GEOSYS
SA</span></font></b></p>
</td>
</tr>
</tbody></table>
<p><font color="navy" face="Times New Roman" size="3"><span style="font-size: 12pt; color: navy;"> </span></font></p>
</div>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
</span><p style="margin-left: 35.4pt;"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">-----Message d'origine-----<br>
<b><span style="font-weight: bold;">De :</span></b> UMN MapServer Developers
List [mailto:<a href="mailto:MAPSERVER-DEV@LISTS.UMN.EDU" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">MAPSERVER-DEV@LISTS.UMN.EDU</a>] <b><span style="font-weight: bold;">De
la part de</span></b> Tamas Szekeres<span class="q"><br>
<b><span style="font-weight: bold;">Envoyé :</span></b> vendredi 20 avril
2007 21:15<br></span>
<b><span style="font-weight: bold;">À :</span></b>
<a href="mailto:MAPSERVER-DEV@LISTS.UMN.EDU" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">MAPSERVER-DEV@LISTS.UMN.EDU</a><br>
<b><span style="font-weight: bold;">Objet :</span></b> Re:
[UMN_MAPSERVER-DEV] C# layerObj.draw && layerObj.drawLegend</span></font></p><div><span class="e" id="q_1121d96f9079fa2b_13">
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<p style="margin-right: 0cm; margin-bottom: 12pt; margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<div>
<p style="margin-left: 35.4pt;"><span><font face="Times New Roman" size="3"><span style="font-size: 12pt;">2007/4/20, Jean
Michel PIERRET <<a href="mailto:jmp@geosys.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">jmp@geosys.com</a>>:</span></font></span></p>
<div link="blue" vlink="purple">
<div>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;">Hi,</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;" lang="EN-GB">I'm using mapserver with c# bindings
and i have two questions.</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;" lang="EN-GB">1)</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial;" lang="EN-GB">
</span></font><font color="teal" face="Courier New" size="2"><span style="font-size: 10pt; color: teal;" lang="EN-GB">layerObj</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> lobj =
<font color="blue"><span style="color: blue;">null</span></font>;</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 70.8pt; text-indent: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">...</span></font></p>
<p style="margin-left: 70.8pt; text-indent: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
<font color="teal"><span style="color: teal;">imageObj</span></font> iobj = <font color="blue"><span style="color: blue;">null</span></font>;</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
iobj = lobj.map.prepareImage();</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">
lobj.draw(_lobj.map, iobj);</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">In the drawn image, the labels don't
appear, whereas with the method mapObj.draw they are there. It is normal ?.</span></font></p>
</div>
</div>
<div>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
I guess you should either disable the labelcache for this layer
(layerObj.labelcache = mapscript.MS_OFF ) or call layerObj.drawlabelcache
explicitly right after drawing the shapes.<br>
</span></font></p>
</div>
<blockquote style="border-style: none none none solid; border-color: -moz-use-text-color -moz-use-text-color -moz-use-text-color rgb(204, 204, 204); border-width: medium medium medium 1pt; padding: 0cm 0cm 0cm 6pt; margin-left: 4.8pt; margin-right: 0cm;">
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<div link="blue" vlink="purple">
<div>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">2)</span></font></p>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB"> </span></font></p>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;" lang="EN-GB">Exist there a method to draw legend for one
layer only and not for all the map. </span></font></p>
</div>
</div>
</blockquote>
<div>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
Here is a function extracted from my previous project for drawing the legend
image, hopefully it applies to your intents fairly enough.<br>
<br>
private Image CreateLegendImage(layerObj layer, int classindex, int width, int
height, int keysizex, int keysizey)<br>
{<br>
using (classObj
def_class = new classObj(null)) // for drawing legend images<br>
{<br>
using (imageObj image = def_class.createLegendIcon(map, layer, width, height))<br>
{<br>
classObj layerclass = layer.getClass(classindex);<br>
layerclass.drawLegendIcon(layer.map, layer, keysizex,
keysizey, image, <br>
(width - keysizex) / 2, (height -
keysizey) / 2);<br>
byte[] img = image.getBytes();<br>
using (MemoryStream ms = new MemoryStream(img)) <br>
{<br>
return Image.FromStream(ms);<br>
}<br>
}<br>
}<br>
}<br>
</span></font></p>
</div>
<p style="margin-right: 0cm; margin-bottom: 12pt; margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"><br>
Best regards,<br>
<br>
Tamas</span></font></p>
</div>
<p style="margin-left: 35.4pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
</span></div></div>
</div>
</blockquote></div><br>