[mapserver-users] Change CLASS Expression using MapScript
Dash
jimlug at co.clackamas.or.us
Mon Oct 12 16:47:45 PDT 2009
Thanks for the quick response.
I'll go ahead and make the appropriate change for the layerObj. As for the
change of expression with the mapfile, I did not know you had to save the
changes. I just wanted the expression to be changed based on what a user
selects from a form.
The page that leads up to the map page allows a user to select either
elementary, middle or high schools to display. Since our GIS layer has
these as attributes I wanted to refrain from specifying these layers
multiple times in the mapfile. I would rather pass an expression into the
mapfile and display the appropriate level. I hope this makes sense?
I had this procedure working before, however, I was never specifiying WMS as
a layer.
Thanks...
Steve Lime wrote:
>
> Couple of things:
>
> 1) you don't need to open/close a layerObj to change it
>
> 2) something doesn't make sense in your approach. Are you saving the
> mapfile somehow with the
> changes so that the subsequent WMS call can make use of it? I don't know
> how the WMS call would
> know you mucked with the class otherwise.
>
> Steve
>
>>>> On 10/12/2009 at 6:29 PM, in message
> <1255390195922-3811433.post at n2.nabble.com>, Dash
> <jimlug at co.clackamas.or.us>
> wrote:
>
>> Hey there folks,
>>
>> I am banging my head against this problem for sometime now. I have a
>> MapFile that is set up to deliver WMS layers when requested through
>> OpenLayers. Within my web page I am trying to change the Class
>> Expression
>> (MapScript/PHP). Below is the method I am using to gain access to the
>> Class
>> and change the expression. I am performing this before I enter a body
>> tag.
>> The body tag has a onload event that fires off the parameters/layers I am
>> using within OpenLayers and makes the call to the WMS layers within my
>> MapFile. Am I missing something here? I thought since I am declaring
>> the
>> expression before I'm displaying the map everything would be ok. I've
>> even
>> retrieved the edited expression and it should work. The only thing I can
>> imagine is that it has something to do with a WMS setting. Any help
>> would
>> be greatly appreciated. Thanks.
>>
>> <head>
>> .
>> .
>> .
>> </head>
>>
>> <?php
>> $situsEnc = $_POST['home'];
>> $situs = urldecode($situsEnc);
>>
>> $map_path="/something/other/than/dirty/socks/wms/";
>> $map = ms_newMapObj($map_path."schools.map");
>>
>> $mafLyr = $map->getLayerByName('maf');
>> $mafLyr->open();
>> $mafClass = $mafLyr->getClass(0);
>> $mafClass->setExpression("('[situs]' = '" . $situs . "')");
>> $mafLyr->close();
>>
>> <body onload=i"nit()">
>> <div id="map"></div>
>> </body>
>
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users
>
>
--
View this message in context: http://n2.nabble.com/Change-CLASS-Expression-using-MapScript-tp3811433p3811491.html
Sent from the Mapserver - User mailing list archive at Nabble.com.
More information about the MapServer-users
mailing list