Adding shapefile dynamically with php_mapscript 4.4.2 - solved
Jacob Delfos
jacob.delfos at MAUNSELL.COM
Mon Jun 13 23:11:58 PDT 2005
Ok, got it sorted out. I forgot to save the session state:
$_SESSION['gszCurrentState'] = $oMapSession->saveState();
So the new layer never really made it into my main map application.
Jacob
--------------------------------------------------------------------------------
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On Behalf Of Jacob Delfos
Sent: 14 June 2005 11:49
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] Adding shapefile dynamically with php_mapscript 4.4.2
Steve,
Thanks for the suggestion. I thought about this approach, but since this is for a chameleon widget, it needs to be "drop-in" functionality, without having to make changes to the mapfile. It's a bit "cleaner" that way, although apparently more complex.
regards,
Jacob
-----Original Message-----
From: Stephen Woodbridge [mailto:woodbri at swoodbridge.com]
Sent: 14 June 2005 11:03
To: Jacob Delfos
Cc: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] Adding shapefile dynamically with php_mapscript 4.4.2
Jacob,
The way I do this is to create a normal in the mapfile with the STATUS
OFF and no DATA statement. Then in mapscript all I do it set the STATUS
ON and assign the path to the DATA like you are doing below.
It is MUCH easier to create a template layer in the mapfile and then
manipulate it, rather than creating the whole thing from scratch.
YMMV,
-Steve W.
Jacob Delfos wrote:
> Hi All,
>
> I am trying to dynamically add a shapefile which I created at runtime.
> The shapefile is created successfully (it opens up ok). But I am not
> having any luck adding it as a layer.
>
> This is the code I have:
>
> $queryResultlayer = ms_newLayerObj( $oMap );
> $queryResultlayer->set( "name", "Queryresult" );
> $queryResultlayer->set( "type", $shapetype );
> $queryResultlayer->set( "status", MS_ON );
> $queryResultlayer->set( "data",
> $szSessionDir."/queryResultShapefile");
> $queryResultlayer->set( "template", "ttt" );
> $queryResultlayer->set( "tolerance", 5 );
> $queryResultlayer->set( "toleranceunits", MS_PIXELS);
> $queryResultlayer->setProjection($mapprojection);
> $queryclass = ms_newClassObj($queryResultlayer);
> $queryclass->set("name", "Query result");
> $queryclass->set("status", MS_ON);
> $style = ms_newStyleObj($queryclass);
> $style->color->setRGB(255, 255, 0);
> $style->outlinecolor->setRGB(255, 0, 0);
>
> The layer is not showing (extents of map are correct). I am not getting
> any errors either. The temporary mapfile being created in the session
> directory does not contain my layer. Am I missing something?
>
> The $oMap object is a reference to the $oMap from the session (using
> Chameleon). I am loading the session from an Iframe, and creating the
> $oMap object like:
>
> $oMap =& $oMapSession->oMap;
>
> So if I add a layer to the map object, the layer should show if the map
> image is reloaded in the main frame, right?
>
> Any help would be much appreciated.
>
> Regards,
>
> Jacob
>
>
> JACOB DELFOS
> SPATIAL INFORMATION ANALYST
> Maunsell Australia Pty Ltd
> 629 Newcastle Street, Leederville, WA 6007
> PO Box 81, Leederville, WA 6902
> Western Australia
> ABN 20 093 846 925
>
> Tel + 61 8 9281 6185
> Fax + 61 8 9281 6297
> jacob.delfos at maunsell.com <mailto:jacob.delfos at maunsell.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20050614/a985fc73/attachment.htm>
More information about the MapServer-users
mailing list