[mapserver-users] PHP_Mapscript swig issue on macOS.
Seth G
sethg at geographika.co.uk
Sat Aug 31 01:12:33 PDT 2019
Do you get the same error if you use the full path to FONTSET in your Mapfile?
FONTSET "/Volumes/Data/WebServer/newswc/mapfiles/fonts.list"
On Mon, Aug 26, 2019, at 11:45 PM, Paul Moen wrote:
> I am running into an error after trying Mapserver 7.4.1 on macOS 10.14
> mojave with the php swig version of mapscript.
>
> Here is the output from php -i when I am using php_mapscriptng.so
>
> PHP Version => 7.3.8
>
> mapscript
>
> MapServer Version => MapServer version 7.4.1 OUTPUT=PNG OUTPUT=JPEG
> OUTPUT=KML SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO
> SUPPORTS=ICONV SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT
> SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER
> SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI SUPPORTS=GEOS SUPPORTS=PBF
> INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
>
> I have a simple mapfile called test.map as follows.
>
> MAP
> NAME TEST
> EXTENT 1026879.6641881098 54774.288373764844 2999091.3458675575
> 1331032.7378794178
> SIZE 978 517
> MAXSIZE 3072
> UNITS FEET
> SHAPEPATH ""
> IMAGECOLOR 240 240 240
> IMAGETYPE png
> CONFIG "MS_ERRORFILE" "stderr"
> # DEBUG 5
> SYMBOLSET "symbols.dat"
> FONTSET "fonts.list"
>
> PROJECTION
> "init=epsg:2266" # ND State Plane - South Zone - NAD83 - feet
> END
>
> LAYER
> NAME "Counties"
> STATUS ON
> TYPE POLYGON
> DATA counties
> CLASS
> NAME "County Boundaries"
> STYLE
> WIDTH 4.0
> MAXWIDTH 6.0
> OUTLINECOLOR 0 0 0
> END
> END
>
> END # Counties - Lines
>
> LAYER
> NAME "a_Counties"
> STATUS ON
> TYPE POLYGON
> DATA counties
> LABELITEM "name_caps"
> CLASS
> NAME "Label"
> LABEL
> COLOR 150 150 150
> OUTLINECOLOR 255 255 255
> FONT mon
> TYPE TRUETYPE
> SIZE 10
> POSITION AUTO
> END
> END
> END
> END
>
> I create 3 pngs using 3 methods.
>
> 1. shp2img -m test.map > shp.png
>
> For the next 2 I have enable_dl = On in my php.ini file so I can
> dynamically load the
> php_mapscript of my choice in the scripts.
>
> 2. To test php_mapscript, no swig, I use the following in a script
> called testOrig.php.
> <?php
> dl('php_mapscript.so');
> $map= new mapObj('test.map');
> $name = "orig.png";
> $img = $map->draw();
> $img->saveImage($name);
> ?>
> I call with the following,
> php -f testOrig.php
> It outputs the png file named orig.png
>
> Both methods 1 and 2 output png files that are exactly the same.
>
> 3. To test php_mapscript via swig, I use the following in a script
> called testSwig.php.
>
> <?php
> dl('php_mapscriptng.so');
> require('mapscript.php');
> $map= new mapObj('test.map');
> $name = "swig.png";
> $img = $map->draw();
> $img->save($name);
> ?>
> I call with the following,
> php -f testSwig.php
> It should output swig.png, but gives the following error.
>
> msGetFontFace(): General error message. Freetype was unable to load
> font file
> "/Volumes/Data/WebServer/newswc/mapfiles/././Montserrat-Regular.ttf"
> for key "mon"
> PHP Fatal error: Uncaught Error: Call to a member function save() on
> null in /Volumes/Data/WebServer/newswc/mapfiles/testSwig.php:7
> Stack trace:
> #0 {main}
> thrown in /Volumes/Data/WebServer/newswc/mapfiles/testSwig.php on
> line 7
>
> Fatal error: Uncaught Error: Call to a member function save() on null
> in /Volumes/Data/WebServer/newswc/mapfiles/testSwig.php:7
> Stack trace:
> #0 {main}
> thrown in /Volumes/Data/WebServer/newswc/mapfiles/testSwig.php on
> line 7
>
> My fonts.list is a one liner, shown below with the font in the same
> directory as the mapfile.
>
> mon Montserrat-Regular.ttf
>
> The map draws fine and the png is created if I take out the label. The
> map will not work with any truetype font I have tried.
> How can I get more information regards to the freetype error that only
> happens with the swig version of mapscript?
>
> Thanks,
>
>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-users
More information about the MapServer-users
mailing list