Paul Ramsey wrote:
Faster than creating a multipoint is to recognize that ST_Centroid()
is just going to return the center of the bbox of the collection
anyways...

Unfortunately, Paul, ST_Centroid returns the center of mass, not the center of 
the bbox.

SELECT astext(st_centroid(st_collect(column1))),
FROM (values ('POINT(0 0)'),
             ('POINT(0 1)'),
             ('POINT(0 2)'),
             ('POINT(1 0)')) as foo;
      astext
------------------
 POINT(0.25 0.75)
(1 row)

Your second post, taking the avg of the x,y does seem to be the nice approach, and produces the same results as ST_Centroid - the center of mass.

SELECT astext(st_makepoint(avg(st_x(column1)), avg(st_y(column1))))
FROM (values ('POINT(0 0)'),
             ('POINT(0 1)'),
             ('POINT(0 2)'),
             ('POINT(1 0)')) as foo;
      astext
------------------
 POINT(0.25 0.75)
(1 row)

If Dustin is after the center of the collection, then something along your 
first suggestion might be more appropriate.
(taking the center of the extents)

Cheers,
Kevin
_______________________________________________
postgis-users mailing list
[email protected]
http://postgis.refractions.net/mailman/listinfo/postgis-users

Reply via email to