[mapserver-users] getLayer dies without error, php mapscript

Daniel Morissette morissette at dmsolutions.ca
Mon Apr 29 05:22:12 PDT 2002


Robert,

I tried your script and couldn't produce a crash.  All I got was an
"invalid shape id" error from the getShape() call which was due to the
fact that the layer was not opened before the call to getShape()... I
added a call to $thislayer->open($map->shapepath); before the getShape()
call, and the script works fine for me.

I tested this on Linux with the MapServer CVS source from end of last
week.  Which version of MapServer are you using and on which OS?

Daniel



Robert Burgholzer wrote:
> 
>  Hello,
> I am trying to retrieve and work on a shape from a layer (see code below
> and map files snippet). All works well with my map, including showing
> the map, and verifying that I can grab layers objects, etc. When I try
> to retrieve a shape from a layer though, my script dies without warning.
> I know that the layer 'microhup' exists in my map, and I know that it
> has 125 data lines, which I assume are shapes (microhup is an esri
> polygon shape file, with all of its subordinate files, .dbf, .shx,
> etc.), and I also know that the column "ID" exists in this file. In the
> code below, I have queried for record 1 (see getShape(-1,1), it is an
> untiled layer), to see if I can view its props. Can anyone tell me what
> I am missing, or point me to something which might explain teh process
> of retrieving individual shapes from a layer?
> 
> <start php mapscript snippet.... >
>      $map = ms_newMapObj($map_path.$map_file);
>        $lname = "microhup";
>        $thislayer = $map->getLayerByName($lname);
>        $lci = $thislayer->classitem;
>        $data = $thislayer->data;
>        $res = $thislayer->getShape(-1,1);
>        $reso = $res->type;
>        $resi = $res->values["ID"];
>        print("$reso: $resi,");
>        $res->free();
> <... edn php mapscript snippet>
> <start map file snip>
> LAYER
>    NAME microhup
>    TYPE POLYGON
>    STATUS ON
>    DATA microhup
>    FILTER "1 = 1"
>    TOLERANCE 10
>    CLASS
>       TEMPLATE void
>       COLOR -1 -1 -1
>       OUTLINECOLOR 200 200 200
>       #EXPRESSION ([ID] <= 20)
>    END
> 
> END
> <... end map file snip>
> 
> --
> Robert Burgholzer
> al·go·rithm  n.
>        A step-by-step problem-solving procedure, especially an
> established, recursive computational
>        procedure for solving a problem in a finite number of steps.
> Invented by Al Gore.
> rburghol at vt.edu
> http://www.soulswimmer.net/



More information about the MapServer-users mailing list