[mapserver-users] Creating legend
Subha Ramakrishnan
subha at gslab.com
Tue Oct 14 00:33:45 PDT 2008
Hi,
Thanks a lot for all your help. I am getting the legend using a
mode=legend request to the mapserver.
It would be great if someone could help me as to how to refresh the
legend when the user pans or zooms.
Thanks a lot for your help.
Regards,
Subha
Fawcett, David wrote:
> 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:* mapserver-users-bounces at lists.osgeo.org
> [mailto:mapserver-users-bounces at lists.osgeo.org] *On Behalf Of
> *Roger André
> *Sent:* Wednesday, October 08, 2008 12:58 PM
> *To:* Subha Ramakrishnan
> *Cc:* mapserver-users at lists.osgeo.org
> *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
> <subha at gslab.com <mailto:subha at gslab.com>> 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:* mapserver-users-bounces at lists.osgeo.org
> <mailto:mapserver-users-bounces at lists.osgeo.org>
> [mailto:mapserver-users-bounces at lists.osgeo.org
> <mailto:mapserver-users-bounces at lists.osgeo.org>] *On
> Behalf Of
> *Roger André
> *Sent:* Tuesday, October 07, 2008 12:06 PM
> *To:* Steve Lime
> *Cc:* mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> *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
> <Steve.Lime at dnr.state.mn.us
> <mailto:Steve.Lime at dnr.state.mn.us>
> <mailto:Steve.Lime at dnr.state.mn.us
> <mailto:Steve.Lime at dnr.state.mn.us>>>
> 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 <subha at gslab.com
> <mailto:subha at gslab.com>
> <mailto:subha at gslab.com <mailto:subha at gslab.com>>>
> 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 <subha at gslab.com
> <mailto:subha at gslab.com>
> <mailto:subha at gslab.com <mailto:subha at gslab.com>>>
> 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
> > mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> <mailto:mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>>
> >
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
> >
> >
> >
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> <mailto:mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>>
> 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
> mapserver-users at lists.osgeo.org
> <mailto:mapserver-users at lists.osgeo.org>
> 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.
More information about the MapServer-users
mailing list