If the layer status is not set to default, you can add it to the URL call e.g.
&layer=countries
If you want the legend to refresh every time a user pans or zooms, you will
want to have code that watches for the moveend event and updates the legend
div. Turns out, the example post that you cited may not be the best way to do
it, but I am quite familiar with it...
David.
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Roger
André
Sent: Wednesday, October 08, 2008 12:58 PM
To: Subha Ramakrishnan
Cc: [email protected]
Subject: Re: [mapserver-users] Creating legend
Hi Subha,
I think for the "mode=legend" to work, you need to change the LAYER
status to DEFAULT. However, you can test the legend function via WMS request
without changing the status by using a request similar to this: (linebreaks
added for clarity)
http://localhost/cgi-bin/mapserv?map=/var/www/mapfiles/states/states.map
&service=wms
&version=%221.1.1%22
&request=GetLegendGraphic
&layer=countries
&styles=
&width=60
&height=40
&format=png
Roger
--
On Tue, Oct 7, 2008 at 11:38 PM, Subha Ramakrishnan <[EMAIL PROTECTED]>
wrote:
Fawcett, David wrote:
Or, just a straight mode=legend request to the CGI if
you are using MapServer. You can pass in your extent, that will manage the
scale-dependent layers.
Will the map file remain the same for this? I did try using
mode=legend in my request and added that to a separate DIV.But the request
doesn't seem to be generating any image.
This is how my map file looks. I've not pasted the entire
contents as its too big.
legend
status on
imagecolor 255 0 0
position ul
end
layer
CONNECTIONTYPE postgis
name india_states
CONNECTION "user=postgres dbname=ibp host=localhost"
group world
type polygon
dump true
METADATA
"wfs_title" "Factbook Metadata"
"gml_include_items" "all"
"wms_feature_info_mime_type" "text/html"
END
template "template.html"
projection
"init=epsg:4326"
end
transparency alpha
status on
data "topology from india_states using unique id using SRID =
-1"
CLASSITEM "state"
CLASS
NAME "JAMMU & KASHMIR"
EXPRESSION "JAMMU & KASHMIR"
STYLE
COLOR 191 191 155
OUTLINECOLOR 000 000 000
#antialias true
end
end
CLASS
NAME "HIMACHAL"
EXPRESSION "HIMACHAL"
STYLE
COLOR 245 226 188
OUTLINECOLOR 000 000 000
#antialias true
end
end
And this request is like this as per the example i found here
:http://openlayers.org/pipermail/users/2008-September/007495.html
var legenddiv = document.createElement('div');
legenddiv.setAttribute('id','legend');
legenddiv.innerHTML = '<img src =
"http://localhost/cgi-bin/mapserv?mode=legend&map='+mapfile+
<http://localhost/cgi-bin/mapserv?mode=legend&map=%27+mapfile+> '"</img>';
document.getElementById('map').appendChild(legenddiv);
Thanks & regards,
Subha
David.
-----Original Message-----
*From:* [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] *On Behalf Of
*Roger André
*Sent:* Tuesday, October 07, 2008 12:06 PM
*To:* Steve Lime
*Cc:* [email protected]
*Subject:* Re: [mapserver-users] Creating legend
Also, you might want to consider making a separate
GetLegendGraphic WMS request and putting the legend
in a separate
DIV element in your web page.
Just an idea.
--
On Tue, Oct 7, 2008 at 8:22 AM, Steve Lime
<[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
wrote:
Visit:
http://www.openlayers.org/dev/examples/example-list.html
and search for untiled. There's a "WMS Untiled"
example you
can view the source of. The singleTile option
goes in the
"options" object as opposed the "params" object.
Params get
passed to the WMS service, options are handled
by OL.
Steve
>>> Subha Ramakrishnan <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> 10/07/08 9:58 AM >>>
Hi Steve,
It would be great if you can give me an example
or tell me
where it is
usually set in OL.
Thanks for your help.
Subha
Steve Lime wrote:
> There's nothing you have to do on the
MapServer side. Looks
like your OL config is wrong
> though. I think 'singleTile' is set in the
wrong
configuration object, perhaps others are in
> the wrong place too.
>
> Steve
>
>
>>>> Subha Ramakrishnan <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> 10/07/08 1:30 AM >>>
>>>>
> Hi,
>
> I am using mapserver 5.0.2 with openlayers.
> I've a problem while creating a legend for a
map from
mapserver.When i
> try to overlay the image from the mapserver on
openlayers'
base map, the
> images are rendered in tiles, and every tile
has a legend
and is limited
> by the size of the tile. So, i see lots of
legends on the
map and only
> half of them are visible as it is restricted
by the tile size.
>
> This is my request to mapserver from openlayers
>
> var mapfile = layer_tablename+'.map';
> twms1 = new OpenLayers.Layer.WMS(
>
layer_tablename,"http://localhost/cgi-bin/mapserv?",
> { map: mapfile,
> transparent: 'true', layers:layer_tablename,
> format: 'image/png',
> projection:"EPSG:4326",reproject:false,
> units: "m",
> singleTile: true
> },{numZoomLevels : MaxZoomLevel});
> map.addLayer(twms1);
>
> I am using the option of singleTile. Is there
any setting to
be done in
> the map file or mapserver for it render a
single tile/single
legend per
> image?
>
> Thank you.
>
> Regards,
> Subha
>
> _______________________________________________
> mapserver-users mailing list
> [email protected]
<mailto:[email protected]>
>
http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>
>
_______________________________________________
mapserver-users mailing list
[email protected]
<mailto:[email protected]>
http://lists.osgeo.org/mailman/listinfo/mapserver-users
--
This message has been scanned for viruses and
dangerous content by *MailScanner*
<http://www.mailscanner.info/>, and is
believed to be clean.
------------------------------------------------------------------------
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users