On Tue, 2007-08-07 at 09:06 +0100, Dave Potts wrote: > I have a table with a list of places described as Geometry type POINT > and a table loaded from a shape file, which takes the form of target > (ie several inscribed circles), each is encoded as a MULTIPOLYGON. I am > attempting to discover which point lie within within these circle. > > I had assumed that something like > > select place_name,gid,id,gridcode,area(the_geom) , > within(the_geom,os_ngr) from shptbl,place_table wherein (the_geom,os_ngr) ; > > would return every geometry ie os_ngr which is within the geometry > boundries of the_geom. > > Where place_name,os_ngr come from place_table and the_geom comes from > the table shptbl. > > Both geometry have the same sri, no errors are listed in the postgres > log files. > I have assume that within covers data types of different types (ie POINT > and MULTIPOLYGON) > > Dave.
Hi Dave, We need a bit more information to help you here; what query results are you seeing and what query results are you expecting to see? The only thing I can see is that Within(A, B) returns whether geometry A is within geometry B rather than vice-versa, so you might need to swap your parameters to Within(). You may like to try the following (if you have a GiST index on your the_geom and os_ngr columns then the && will ensure that it can be used to calculate the much faster bounding box overlap rather than the complex and slower Within() function): select place_name, gid, id, gridcode, area(the_geom), within(os_ngr, the_geom) from shptbl, place_table where os_ngr && the_geom; HTH, Mark. -- ILande - Open Source Consultancy http://www.ilande.co.uk _______________________________________________ postgis-users mailing list [email protected] http://postgis.refractions.net/mailman/listinfo/postgis-users
