Re: Mapfile comment parsing issue

Julian Hollingbery <[email protected]>
Newsgroups gmane.comp.gis.mapserver.user
Message-ID <[email protected]>
Yep, that would absolutely explain what I see.

/julian

On 20 Mar 2019, at 19.49, Lime, Steve D (MNIT) <[email protected]<mailto:[email protected]>> wrote:

Should be easy enough to replicate. Does this sum it up?


·         Label TEXT w/expression followed with a comment containing ()’s - FAILS

·         Same TEXT w/expression but with moving the comment containing ()’s onto its own line - WORKS

·         Label TEXT w/expression followed with a comment without ()’s – WORKS

Seems like the regex in maplexer.l for expressions might be too greedy.

--Steve


From: mapserver-users [mailto:[email protected]] On Behalf Of Julian Hollingbery
Sent: Wednesday, March 20, 2019 10:49 AM
To: [email protected]<mailto:[email protected]>
Subject: [mapserver-users] Mapfile comment parsing issue

Hi list,

I have observed an obscure behavior in MapServer version 7.0.7, which I’d like to run by you before I submit an issue.

I have an issue where labels on contour line disappear when I write a particular type of comment after the TEXT directive.

Using this request:
http://host/fcgi-bin/mapserv.fcgi?map=ms_issue_report.map&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=542400.00,6216800.00,542600.0,6217000.0&CRS=EPSG:25832&WIDTH=400&HEIGHT=400&LAYERS=dhm_kote_0_5_m,dhm_kurve_0_5_m&STYLES=&FORMAT=image/png&TRANSPARENT=FALSE
this piece of MAP file

   CLASS
     GROUP "default"
     NAME "dhm2015 kurver, 0,5 m"

     TEXT (tostring([hoejde],"%.2f")) #altid to decimal, også .00 (eng. always two decimals, including .00)
     STYLE
       OPACITY 80
       COLOR 100 50 0
       WIDTH 1
     END #STYLE
      LABEL
        FONT "arial"
        SIZE 9
        COLOR 137 90 68
        OFFSET 0 -6
        SHADOWSIZE 1 1
        TYPE TRUETYPE
        REPEATDISTANCE 300
        ANGLE auto
        PARTIALS FALSE
      END # LABEL
   END #CLASS

Gives me https://pasteboard.co/I6jsBen.png<https://gcc01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpasteboard.co%2FI6jsBen.png&data=02%7C01%7Csteve.lime%40state.mn.us%7Ca451b548353e4155a66d08d6ad4b8fff%7Ceb14b04624c445198f26b89c2159828c%7C0%7C0%7C636886937384475484&sdata=li%2BfUjy8z0PLsrF4PR%2FIcBay0iqpasi88oLNdHhhguM%3D&reserved=0> (contour lines w/o labels), whereas

   CLASS
     GROUP "default"
     NAME "dhm2015 kurver, 0,5 m"
     #altid to decimal, også .00 (eng. always two decimals, including .00)
     TEXT (tostring([hoejde],"%.2f"))
     STYLE
       OPACITY 80
       COLOR 100 50 0
       WIDTH 1
     END #STYLE
      LABEL
        FONT "arial"
        SIZE 9
        COLOR 137 90 68
        OFFSET 0 -6
        SHADOWSIZE 1 1
        TYPE TRUETYPE
        REPEATDISTANCE 300
        ANGLE auto
        PARTIALS FALSE
      END # LABEL
   END #CLASS

Results in https://pasteboard.co/I6js9YK.png (which is the desired result: Contour lines labelled with two decimal points).
I have narrowed it down a bit, and if I delete the “(eng. ..)”, i.e. just have
     TEXT (tostring([hoejde],"%.2f")) #altid to decimal, også .00
It still works nicely.

So I guess the parentheses are somehow parsed as something meaningful (related to the “tostring”-expression, perhaps?), invalidating the TEXT declaration.

Has anyone seen something similar?

Best Regards
/julian

_______________________________________________
mapserver-users mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/mapserver-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.