[postgis-users] select only points inside a polygon

Stephen Woodbridge woodbri at swoodbridge.com
Sat May 8 12:34:27 PDT 2010


Nicola Zandonà wrote:
> Hi All, i'm a newbie with postgis and probably this is an easy question.
> 
> I have 2 tables, one with a point geometry attribute called tableA, and 
> the other one with a polygon and multi-polygon geometry attribute, 
> called tableB.
> 
> I need to retrieve only those points inside a particular geometry called 
> 1 in the second table, so i try something like:
> 
> SELECT point
> FROM tableA a, tableB b
> WHERE ST_Contains(b.the_geom, a.the_geom)
> AND b.id = '1';

This is a similar construct to what you have. You should have gist 
indexes on at least the tableA.

SELECT point
FROM tableA a, tableB b
WHERE b.id =1
AND b.the_geom && a.the_geom
AND ST_distance(b.the_geom, a.the_geom)=0.0;

You can also try using this where clause if you are using version 1.3+ 
and it should be faster:

WHERE b.id =1
AND ST_DWithin(b.the_geom, a.the_geom, 0.0);

-Steve
  http://imaptools.com/

> but no result is returned.
> Is there something wrong with that query? Maybe the use of ST_Contains?
> 
> Any help will be greatly appreciated!
> 
> Tnx in advance.
> 
> Nick.
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users




More information about the postgis-users mailing list