[mapserver-users] PHP mapscript querybyrect()

Charlie Allgrove charlie.allgrove at connectionservices.com
Mon Jul 12 09:59:20 EDT 2010


Many thanks for that. Added a TEMPLATE section to the layer and it's burst
into life.

Many thanks

Charlie

-----Original Message-----
From: mapserver-users-bounces at lists.osgeo.org
[mailto:mapserver-users-bounces at lists.osgeo.org] On Behalf Of Daniel
Morissette
Sent: 09 July 2010 20:07
To: mapserver-users at lists.osgeo.org
Subject: Re: [mapserver-users] PHP mapscript querybyrect()

You didn't share your layer definition (mapfile). Make sure you have a
template set, either at the layer level or in each of the classes you
want to be able to query.

Charlie Allgrove wrote:
> 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)
> 
> _______________________________________________
> mapserver-users mailing list
> mapserver-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapserver-users


-- 
Daniel Morissette
http://www.mapgears.com/
_______________________________________________
mapserver-users mailing list
mapserver-users at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users



More information about the mapserver-users mailing list