[mapserver-users] Mapfile comment parsing issue
Julian Hollingbery
julian at northtech.dk
Wed Mar 20 23:35:49 PDT 2019
Yep, that would absolutely explain what I see.
/julian
On 20 Mar 2019, at 19.49, Lime, Steve D (MNIT) <steve.lime at state.mn.us<mailto:steve.lime at state.mn.us>> 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: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<mailto: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/20190321/af112c45/attachment.htm>
More information about the MapServer-users
mailing list