[mapserver-users] PHP mapscript querybyrect()

Charlie Allgrove charlie.allgrove at connectionservices.com
Fri Jul 9 07:44:39 PDT 2010


Hi

Could anyone shed some light on a problem I have with querybyrect() using
PHP Mapscript please?

I'm trying to get the number of points within a known boundary (from a
google map). The map file is apparently working, as I have it generating
tiles for overlaying on a google map. The Shapefile is (for the sake of
example) xxx.shp containing a layer 'xxx' (see ogrinfo output below)

The PHP code I'm using is here, but I consistently get this error:
Warning: [MapServer Error]: msQueryByRect(): No matching record(s) found. in
/var/www/yyy/zzz/qryMap.php on line 44

The shapefiles are in /var/www/yyy/zzz/data/ (and the SHAPEPATH in the map
file is set to 'data')

I'm kinda new to this - so I might have missed something, but can anyone
shed any light on what I've missed and/or am doing wrong? 

Many thanks in advance,

Charlie

PHP extract:

<snip>
$lstrMapPath = "/var/www/yyy/zzz/xxx.map";

$lobjMap = ms_newMapObj($lstrMapPath);
$lobjRect = ms_newrectObj();
$lobjRect->setextent($lintBLLon,$lintBLLat,$lintTRLon,$lintTRLat);

$l='xxx';

$lobjLayer = $lobjMap->getLayerByName($l);
if(!$lobjLayer) {
  //die("Layer does not exist");
  echo "Couldn't find layer {$l}<br />";
  continue;
}
$lobjLayer->open();
echo "<strong>{$l}</strong><br />";
$lobjLayer->queryByRect($lobjMap->extent);
echo $lobjLayer->data."<br />"; //correctly shows the shapefilename
$lintCount = $lobjLayer->getNumResults();
echo "$l: {$lintCount}<br />";
$lobjLayer->close();
</snip>

OGRINFO:

>ogrinfo xxx.shp -so xxx
INFO: Open of `xxx.shp'
      using driver `ESRI Shapefile' successful.

Layer name: xxx
Geometry: Point
Feature Count: 759947
Extent: (-8.146110, 49.892400) - (1.758210, 60.800800)
Layer SRS WKT:
GEOGCS["GCS_WGS_1984",
    DATUM["WGS_1984",
        SPHEROID["WGS_1984",6378137,298.257223563]],
    PRIMEM["Greenwich",0],
    UNIT["Degree",0.017453292519943295]]
Postcode: String (80.0)
NoSpace: String (80.0)
Hubs: String (80.0)
Long_WGS84: String (80.0)
Lat_WGS84: String (80.0)




More information about the MapServer-users mailing list