[mapserver-users] Mapfile comment parsing issue

Julian Hollingbery julian at northtech.dk
Thu Mar 21 03:05:16 PDT 2019


Hi Seth,

Nope, but that does sound like a useful debugging technique!

/julian

-----Oprindelig meddelelse-----

Date: Wed, 20 Mar 2019 14:48:12 -0400
From: "Seth G" <sethg at geographika.co.uk>
To: mapserver-users at lists.osgeo.org
Subject: Re: [mapserver-users] Mapfile comment parsing issue
Message-ID: <27582da7-8789-4e10-a806-f7232e13d910 at www.fastmail.com>
Content-Type: text/plain; charset="utf-8"

Hi Julian,

I have seen something similar when writing tests for mappyfil. I've tried to find my test case in https://github.com/geographika/mappyfile/tree/master/tests but can't seem to locate it at the moment. I'm fairly sure I had some notes somewhere and it related to parsing MapServer expressions. I'll take another look later. 
Did you try to dump the Mapfile out using MapScript to see how it is stored internally in MapServer after it has been loaded?

Seth

--
web:http://geographika.co.uk
twitter: @geographika


On Wed, Mar 20, 2019, at 4:49 PM, Julian Hollingbery wrote:
> 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,621700
> 0.0&CRS=EPSG:25832&WIDTH=400&HEIGHT=400&LAYERS=dhm_kote_0_5_m,dhm_kurv
> e_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 (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

> 


More information about the mapserver-users mailing list