[mapserver-users] Mapfile comment parsing issue

Lime, Steve D (MNIT) steve.lime at state.mn.us
Wed Mar 20 11:49:19 PDT 2019


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:mapserver-users-bounces at lists.osgeo.org] On Behalf Of Julian Hollingbery
Sent: Wednesday, March 20, 2019 10:49 AM
To: mapserver-users at lists.osgeo.org
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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20190320/9b78d8a4/attachment.html>


More information about the mapserver-users mailing list