[Users] How to create legend panel using OpenLayers.Layer.MapServer layer...

Andreas Hocevar ahocevar at opengeo.org
Mon Jan 11 15:04:59 CET 2010


Hi,

which version of GeoExt are you using? Providing imageFormat in defaults 
only works with current trunk. Version 0.6 had a different way of doing 
this.

Regards,
Andreas.

stela anders wrote:
> Thanks Andreas...
> 
> The fact is :
>  - Now I have all image symbol in png format
>  - My mapfile is configured to generate PNG images
>  - My legendPanel:
> 
> var legendPanel = new GeoExt.LegendPanel({
>         defaults: {          
>             style: 'padding:5px',
>             imageFormat: "image/png"   
>         },
>         title: 'Legend',
>         bodyStyle: 'padding:5px',
>         width: 350,
>         autoScroll: true     
>     });
> 
> 
> But the legend url generated my GeoExt is:
> 
> http://localhost/cgi-bin/mapserv.exe?MAP=Map.map&TRANSPARENT=true&FORMAT=image%2Fgif&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=Roads 
> <http://localhost/cgi-bin/mapserv.exe?MAP=Map.map&TRANSPARENT=true&FORMAT=image%2Fgif&SERVICE=WMS&VERSION=1.1.1&REQUEST=GetLegendGraphic&STYLES=&EXCEPTIONS=application%2Fvnd.ogc.se_xml&LAYER=Roads> 
> 
> 
> It is in GIF, why? If I manually change to "...&FORMAT=image%2Fpng" the 
> legend is generated fine...
> 
> Any help?
> 
> Thanks
> 
> Stella
> 
> 2010/1/8 Andreas Hocevar <ahocevar at opengeo.org 
> <mailto:ahocevar at opengeo.org>>
> 
>     stela anders wrote:
> 
>         Thanks Andreas... ;)
>         displayInLayerSwitcher did the trick !!!
> 
>         I have some point layer with image symbol (.gif - 16x15) ... The
>         legend icon in that case stay ugly (only part of image appears)...
> 
> 
>     Not a GeoExt issue for sure. GeoExt just loads the image and
>     displays it in its original extent and dimensions. But you could
>     define a png24 format in your mapfile, and configure your
>     legendPanel with something like
> 
>     defaults: {imageFormat: "image/png"}
> 
> 
>         Any idea why that? Or maybe is a restriction?
> 
> 
>     Again, you might want to ask about GetLegendGraphic on the mapserver
>     users list or look in the mapserver docs.
> 
>     Regards,
>     Andreas.
> 
> 
>         Thanks so much! U r saving my week ;)
> 
>         Stella
> 
>         2010/1/8 Andreas Hocevar <ahocevar at opengeo.org
>         <mailto:ahocevar at opengeo.org> <mailto:ahocevar at opengeo.org
>         <mailto:ahocevar at opengeo.org>>>
> 
> 
>            stela anders wrote:
> 
>                Hello Andreas...
> 
>                All sublayers is with status ON, they are draw on map,
>         but in my
>                legend I got ONLY "Layer1" label printed...
>                My layers:
>                              OpenLayers.Layer.WMS("Layer1",
>                               mycgi, {
>                                   map: mymapfile,
>                                   layers: ['Sublayer11','Sublayer12',
>                'Sublayer13'],
>                                   format: "image/png",
>                                   transparent: "true"
>                               }, {
>                                   isBaseLayer: true,                    
>                                 visibility: true
>                               }),
> 
> 
>            The above should cause three GetFeatureInfo requests to be
>         issued:
>            one for each of your sublayers. If you just see the label, then
>            MapServer does not send you an image on the GetFeatureInfo
>         request.
>            Here is what you can try: enable the Net panel on firebug and
>         look
>            at the GetFeatureInfo request that the browser issues. Copy them,
>            open them in a browser window/tab, and fix your mapfile until
>         they
>            work (more help available in mapserver docs/lists).
> 
> 
>                              OpenLayers.Layer.WMS("Layer2",
>                               mycgi, {
>                                   map: mymapfile,
>                                   layers: ['Sublayer21','Sublayer22',
>                'Sublayer23'],
>                                   format: "image/png",
>                                   transparent: "true"
>                               }, {
>                                   isBaseLayer: false,
>                                   displayInLayerSwitcher: false,
>                                   visibility: true
>                               }),
> 
> 
>            This won't display anything, because you have set
>            "displayInLayerSwitcher" to false.
> 
>                So, What is your suggestion in building a legend to Map with
>                GeoExt sublayers? I need all sublayers appears on my legend
>                (each one has different images...)
> 
> 
>            The LegendPanel does exactly that. It requests one image per
>            sublayer (now that you provided a code snippet and I finally know
>            what you meant by "sublayer"). My suggestion is: fix your
>         mapfile so
>            Mapserver can answer GetFeatureInfo requests correctly.
> 
>            Regards,
>            Andreas.
> 
>            --    Andreas Hocevar
>            OpenGeo - http://opengeo.org/
>            Expert service straight from the developers.
> 
> 
> 
> 
>     -- 
>     Andreas Hocevar
>     OpenGeo - http://opengeo.org/
>     Expert service straight from the developers.
> 
> 


-- 
Andreas Hocevar
OpenGeo - http://opengeo.org/
Expert service straight from the developers.


More information about the Users mailing list