[mapserver-users] RE Mapfile, EXPRESSION for CLASS >> NAME

Seth G geographika at gmail.com
Wed Mar 30 11:40:59 PDT 2016


Hi,

I had the same issue, but as an added complication the number of classes 
could change dynamically based on users adding and editing data.
I solved this by intercepting any web requests to this particular layer 
and using MapScript to build the classes on-the-fly, then passing the 
Layer object to generate the image.

     for c in classes:
         clsObj = mapscript.fromstring(c)
         layer.classes.append(clsObj)

...


     req = mapscript.OWSRequest()

     req.loadParamsFromURL(querystring)

     try:
         dispatch_status = mymap.OWSDispatch(req)

         #strip all the headers from the output as we add these through 
wsgi server

         content_type = mapscript.msIO_stripStdoutBufferContentType()
         mapscript.msIO_stripStdoutBufferContentHeaders()

         resp = mapscript.msIO_getStdoutBufferBytes()
     except Exception as ex:
         logging.error(ex)
         logging.error(querystring)
         resp, content_type = str(ex), "text/plain"

     return resp, content_type

If you have static, or rarely changing data, then it would be simpler to 
just use a script to build the classes once and save them as an INCLUDE 
to your MAP file. Python and Jinja2 (a templating library for Python) 
are handy for this.

Seth

On 30/03/2016 19:00, Lime, Steve D (MNIT) wrote:
> Won't work. Bobb is trying to use feature-level properties at the legend/layer-level. Can't be done... Steve
>
> ________________________________________
> From: mapserver-users [mapserver-users-bounces at lists.osgeo.org] on behalf of Steve.Toutant at inspq.qc.ca [Steve.Toutant at inspq.qc.ca]
> Sent: Wednesday, March 30, 2016 10:32 AM
> To: Basques, Bob (CI-StPaul)
> Cc: mapserver-users at lists.osgeo.org; mapserver-users
> Subject: [mapserver-users] RE  Mapfile, EXPRESSION for CLASS >> NAME
>
> Perhaps you can use CLASS TITLE instead of NAME
>
>
>
> "Basques, Bob (CI-StPaul)" <bob.basques at ci.stpaul.mn.us>@lists.osgeo.org
> Envoyé par : "mapserver-users" <mapserver-users-bounces at lists.osgeo.org>
>
> 2016-03-25 16:44
>
>
> A
>          "mapserver-users at lists.osgeo.org" <mapserver-users at lists.osgeo.org>
> cc
>
> Objet
>          [mapserver-users] Mapfile, EXPRESSION for CLASS >> NAME
>
>
>
>
>
>
>
>
>
> All,
>
> I think I’m trying to be too clever . . .
>
> I have this MAPFILE chunk:
>
> CLASS
> COLOR 0 255 0
> OUTLINECOLOR 0 0 0
>        SIZE 10
>        SYMBOL 'circle'
> NAME '[FOLDERTYPE]'
> TEXT '[FOLDERTYPE]'
>        LABEL
>          FORCE TRUE
>          COLOR 255 255 0
>          OUTLINECOLOR 0 0 0
>          POSITION ur
> TYPE TRUETYPE
> FONT 'arial-bold'
> SIZE 11
>        END
>      END
>
>
> and I’m trying to use an Expression for the Label in the Legend graphic.  The FOLDERTYPE and is the two later code for map labels, while the FOLDERDESC is the long pretty name for the Legend.
>
>
>
> Question, is it possible??  Ideas??  Before you say a separate class for each one, there are 120 FOLDERTYPEs in all, that would be a big, and hard to maintain Mapfile.
>
> thanks
>
> bobb
>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list