Last active
October 8, 2019 03:33
Revisions
-
andrewteg revised this gist
Mar 29, 2019 . 1 changed file with 10 additions and 9 deletions.There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,27 +3,28 @@ include("C:/ms4w/apps/phpmapscriptng-swig/include/mapscript.php"); // required SWIG include (contains constants for PHP7) // sample filter strings to search on... OFFICIAL_N is name of field in Attribute Table for Layer $filter_string = '("[OFFICIAL_N]" == "Gallery")'; //exact (use ==) - case-sensitive $filter_string = '("[OFFICIAL_N]" ~* "^ga.*")'; //starts Ga (^ for starting) not case-sensitive $filter_string = '("[OFFICIAL_N]" ~* ".*GA.*")'; //like Ga (.* maybe not needed?!?) not case-sensitive $map = new mapObj("/ms4w/maps/file.map"); $layer = $map->getLayer(0); //first layer in mapfile $layer->setFilter($filter_string); //filter results $layer->template = true; //for historical reasons, the query attribute must be non-NULL for a layer to be queryable RE: https://www.mapserver.org/mapscript/mapscript.html#layerobj-attributes $ext = $layer->getExtent(); $query = $layer->queryByRect($map, $ext); //must query before getting $layer numitems $numResults = $layer->getNumResults(); $layername = $layer->name; $layeritems = $layer->numitems; //count of items in attribute table //echo 'Layer '.$layername.' has '.$layeritems.' items<br>'; for ($x=0;$x<$layeritems;$x++) { $layer_headers[$x] = $layer->getItem($x); //for the layer, this gets the attribute field names } //print_r($layer_headers); if($query == MS_SUCCESS) { echo 'Query has '.$layer->getNumResults().' Results:<br>'; if($layer->getNumResults()>0) { -
andrewteg created this gist
Mar 27, 2019 .There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,56 @@ <html><head><title>query sample</title></head><body><PRE> <?php include("C:/ms4w/apps/phpmapscriptng-swig/include/mapscript.php"); // required SWIG include (contains constants for PHP7) // sample filter strings to search on... OFFICIAL_N is name of field in Attribute Table for Layer $filter_string = '("[OFFICIAL_N]" == "Gallery")'; //exact (use ==) - case-sensitive $filter_string = '("[OFFICIAL_N]" ~* "^ga.*")'; //starts Ga (^ for starting) not case-sensitive $filter_string = '("[OFFICIAL_N]" ~* ".*GA.*")'; //like Ga (.* maybe not needed?!?) not case-sensitive $map = new mapObj("/ms4w/maps/file.map"); $layer = $map->getLayer(0); //first layer in mapfile $layer->setFilter($filter_string); //filter results $layer->template = true; //for historical reasons, the query attribute must be non-NULL for a layer to be queryable RE: https://www.mapserver.org/mapscript/mapscript.html#layerobj-attributes $ext = $layer->getExtent(); $query = $layer->queryByRect($map, $ext); $numResults = $layer->getNumResults(); $layername = $layer->name; $layeritems = $layer->numitems; //echo 'Layer '.$layername.' has '.$layeritems.' items<br>'; for ($x=0;$x<$layeritems;$x++) { $layer_headers[$x] = $layer->getItem($x); } //print_r($layer_headers); if($query == MS_SUCCESS) { echo 'Query has '.$layer->getNumResults().' Results:<br>'; if($layer->getNumResults()>0) { for ($i=0; $i < $layer->getNumResults(); $i++) { $result = $layer->getResult($i); //print_r($result); if($result === FALSE) { error_log('No result '.$i); } else { $shape = $layer->getShape($result); //print_r($shape); //echo ("#$i OBJECTID = ".$shape->values['OBJECTID'].'<br>'); //ms4w 3.x //echo 'vals='.$shape->numvalues; echo ("#$i OBJECTID = ".$shape->getValue(0)); //ms4w 4.x $vals = array(); echo '<blockquote>'; for ($x=0;$x<$shape->numvalues;$x++) { //echo $x.'='.$shape->getValue($x).'<br>'; $vals[$layer_headers[$x]] = $shape->getValue($x); } print_r($vals); //echo 'WKT='.$shape->toWKT().'<br>'; print_r($shape->values); echo '</blockquote>'; } } } } else { echo('Query Returned No Results'); } echo '<hr>END<hr>'; ?> </PRE></body></html>