[mapserver-dev] Using tileindex raster layer with php_mapscript

laurent.baey at free.fr laurent.baey at free.fr
Wed Oct 1 07:10:31 EDT 2008


I don't know if it is really related to php_mapscript but here's my problem :

When I build a layer with php_mapscript, setting layer->tileindex and  
layer->tileitem, I have the following error :
[MapServer Error]: msDrawMap(): Failed to draw layer named 'relief'.
[MapServer Error]: msDrawRaster(): rasters/POL/BoraBora_relief.tif/  
using full path rasters/POL/BoraBora_relief.tif/

Note the extra '/' at the end of the path.

after a little investigation, I found that even if it's not defined  
anywhere in my code, layer->data is not null but an empty string.  
(maybe a default value in php_mapscript code)

In mapraster.c trunk code :
1401  if(layer->data == NULL) /* assume whole filename is in attribute  
field */
1402    strcpy( tilename, tshp.values[tileitemindex] );
1403  else
1404    sprintf(tilename, "%s/%s", tshp.values[tileitemindex], layer->data);
1405  filename = tilename;

I found the extra slash coming from line 1404.
Working with a mapfile solve the problem, as layer->data remains null  
if not defined in the mapfile. But I need to set it dynamically.

So when coming from php mapscript, as layer->data is not null, I would suggest
to replace line 1401 of mapraster.c with

if(layer->data == NULL || strlen(layer->data) == 0)

any comments ?
If it doesn't create side effect, can it be commited ?


Laurent BAEY

This message was sent using IMP, the Internet Messaging Program.

More information about the mapserver-dev mailing list