I'm just a MapServer user. I've copied this reply to the list so your comments will be seen.
Worth _____ From: Cristiano Sumariva [mailto:sumar...@gmail.com] Sent: Monday, March 29, 2010 7:28 AM To: Worth Lutz Subject: Re: [mapserver-users] php mapscript To me would be very good that mapserver documentation includes a since version.subversion.release flag at documentation function names like php does on their site. And for those changes and breaks on code the user contribution on end of function descriptions would be welcome too. Example from php pg_connect (PHP 4, PHP 5) resource pg_connect ( string $connection_string ) http://br2.php.net/manual/en/function.pg-connect.php 2010/3/29 Worth Lutz <w...@mindspring.com> I don't think that the documentation has caught up with the changes in the program. People using older versions of MapServer have to use the older method and the new method is used for 5.6+ version. It was described briefly in the migration document but took me some experimentation to get results. Worth -----Original Message----- From: Sven Schroeter [mailto:schroe...@netgis.de] Sent: Monday, March 29, 2010 4:18 AM To: Worth Lutz Cc: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] php mapscript Hi, thank you very much, shapeObj resultsGetShape is the solution. resultsGetShape works fine. But I don't understand why shapeObj getFeature is in the documentation? Sven ----- Original Message ----- From: Worth Lutz To: 'Sven Schroeter' ; Sent: Friday, March 26, 2010 11:09 PM Subject: RE: [mapserver-users] php mapscript This problem is due to the new single pass query in 5.6. I have marked your code with what I am using. Try these mods marked with "*************************": @$datQuery = $query_layer->queryByRect($qRect); //number of objects $resnum = $query_layer->getNumResults(); echo "number of objects: ".$resnum."<br>"; //if query success if ($datQuery == MS_SUCCESS) { // $query_layer->open(); // <<REMOVE OPEN AND CLOSE *********** //first row $result = $query_layer->getResult(0); //$shpobj = $query_layer->getShape($result->tileindex,$result->shapeindex); // resultsGetShape is now the way to get the shape object *************************** // note: change of order in arguments ************************************************ $shpobj = $query_layer->resultsGetShape($result->shapeindex, $result->tileindex); //read attribute $attr = $shpobj->values; //write headline echo '<table cellspacing="0" cellpadding="2" border="1" ><tr>'; foreach($attr as $name=>$wert) { echo '<td bgcolor="#CCCCCC">'.$name.'</td>'; } echo '</tr>'; //write datasets for ($j=0; $j<$query_layer->getNumResults(); $j++) { $result = $query_layer->getResult($j); //$shpobj = $query_layer->getShape($result->tileindex,$result->shapeindex); // see note above ********************************************************************** $shpobj = $query_layer->resultsGetShape($result->shapeindex, $result->tileindex); $ri = $result->tileindex; $si = $result->shapeindex; $attr = $shpobj->values; echo '<tr id="row'.$si.'" >'; foreach($attr as $name=>$wert) { echo '<td>'.$wert.'</td>'; } echo '</tr>'; $shpobj->free(); } // $query_layer->close(); // <<REMOVE OPEN AND CLOSE *********** echo '</table>'; } // end success ... -----Original Message----- From: mapserver-users-boun...@lists.osgeo.org [mailto:mapserver-users-boun...@lists.osgeo.org] On Behalf Of Sven Schroeter Sent: Thursday, March 25, 2010 10:52 AM To: mapserver-users@lists.osgeo.org Subject: Re: [mapserver-users] php mapscript Alan, thanks for the reply, I tried it with getFeature(), but there comes the same error. nextShape() works only after msWhichShapes and here I need a rectobj. But I want to use the script for queryByShape and queryByAttributes too. Why there comes no array in $attr = $shpobj->values; ? Any idea? Sven ----- Original Message ----- From: "Alan Boudreault" <aboudrea...@mapgears.com> To: <mapserver-users@lists.osgeo.org> Cc: "Sven Schroeter" <schroe...@netgis.de> Sent: Thursday, March 25, 2010 2:32 PM Subject: Re: [mapserver-users] php mapscript > Sven, > > getShape() is deprecated. Use rather getFeature(). I suggest to also take > a > look at the nextShape() function: > http://mapserver.org/mapscript/php/index.html#layerobj-class > > Alan > > On March 25, 2010 09:18:50 am Sven Schroeter wrote: >> Hi, >> I have an old php mapscript code that works fine with mapserver 5.02 or >> 5.2, but not with 5.6.1. >> The code runs an attribute tabe from a postgis layer and different querys >> i.e. queryByRect: >> >> ... >> @$datQuery = $query_layer->queryByRect($qRect); >> >> //number of objects >> $resnum = $query_layer->getNumResults(); >> echo "number of objects: ".$resnum."<br>"; >> >> //if query success >> if ($datQuery == MS_SUCCESS) { >> $query_layer->open(); >> >> //first row >> $result = $query_layer->getResult(0); >> $shpobj = >> $query_layer->getShape($result->tileindex,$result->shapeindex); >> //read attribute >> $attr = $shpobj->values; >> >> //write headline >> echo '<table cellspacing="0" cellpadding="2" border="1" ><tr>'; >> foreach($attr as $name=>$wert) { >> echo '<td bgcolor="#CCCCCC">'.$name.'</td>'; >> } >> echo '</tr>'; >> >> //write datasets >> for ($j=0; $j<$query_layer->getNumResults(); $j++) { >> $result = $query_layer->getResult($j); >> $shpobj = >> $query_layer->getShape($result->tileindex,$result->shapeindex); $ri = >> $result->tileindex; >> $si = $result->shapeindex; >> $attr = $shpobj->values; >> echo '<tr id="row'.$si.'" >'; >> foreach($attr as $name=>$wert) { >> echo '<td>'.$wert.'</td>'; >> } >> echo '</tr>'; >> $shpobj->free(); >> } >> $query_layer->close(); >> echo '</table>'; >> >> } // end success >> ... >> >> In ms 5.6.1 the query is also successful (I get the correct number of >> objects) but there comes following warning: >> Invalid argument supplied for foreach() in ... Fatal error: Call to a >> member function free() on a non-object in ... >> No object? Why? What has changed? >> Thanks >> Sven >> >> >> >> _______________________________________________ >> mapserver-users mailing list >> mapserver-users@lists.osgeo.org >> http://lists.osgeo.org/mailman/listinfo/mapserver-users >> > > -- > Alan Boudreault > Mapgears > http://www.mapgears.com > > _______________________________________________ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users _______________________________________________ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users
_______________________________________________ mapserver-users mailing list mapserver-users@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/mapserver-users