[postgis-users] simple point-in-polygon problem

Pedro Doria Meunier pdoria at netmadeira.com
Mon Dec 17 09:26:51 PST 2007


Hey Pere,

Perhaps you're looking for a INNER JOIN clause? ;-)
Regards,

On Mon, 2007-12-17 at 09:19 -0800, pere roca wrote:

> hi!
> please, I need some help with a query to extract points from polygons and
> update the value (count points) in a field of the polygon table. This counts
> gives me the name of polygon and counts points-in-polygon. Nice. 
> 
> select polygon.name, count(points.gid)  from points, polygon where
> points.the_geom && polygon.the_geom and Contains
> (polygon.the_geom,points.the_geom) group by polygon.name
> 
> Now I need to update the number_of_points field of polygon table.
> 
> update polygon set number_points=
> 
> (
> select count(point.gid) from
>      point, polygon 
>   where point.the_geom && polygon.the_geom and 
>    Contains (polygon.the_geom,point.the_geom) 
>   group by polygon.name
> ) 
> 
> from point where point.the_geom && polygon.the_geom and
> Contains(polygon.the_geom, point.the_geom) 
> 
> It just fills the "number_points" field of the polygons that intersect with
> points, BUT the value assigned is the same for all (that's the total COUNT
> of all points, because all of these points are inside a polygon). 
> 
> I've checked many more sentences with no success.
> Of course if at the end of the sentence I add "where polygon.name="x", will
> update ALL the values with the number of points that are only inside this
> polygon. 
> If I don't have a "link" between the two tables that says like: "where
> polygon.name=point.poly_id"...do I HAVE TO construct a pgsql function to
> loop over all the polygons?
> 
> Is Contains the fastest way to work with these kind of problems?
> Thanks a lot,
> Pere

--
Pedro Doria Meunier 
Ips da Olaria
Edf. Jardins do Garajau, 4 r/c Y
9125-163 Caniço
Madeira
Portugal
GSM: +351 96 17 20 188 Skype: pdoriam
http://www.madeiragps.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20071217/7f63dd89/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20071217/7f63dd89/attachment.pgp>


More information about the postgis-users mailing list