[postgis-users] Center of Points Collection

pcreso at pcreso.com pcreso at pcreso.com
Mon Sep 14 18:25:49 PDT 2009


Hi guys,

A bit more difficult, & way out in left field, but if you use PL/R to create a median function for Postgres, you could build your point from the median(X) & (Y) values instead of the average.

Where this would actually lie obviously depends on the distribution of the points. The centroid is most affected by (actually defined by) outlying points, the avg somewhat less & the median less still.

Of course once you have PL/R to play with, you have much more flexibility to look at returning statistics from datasets than just the median.

Cheers,

  Brent Wood




--- On Tue, 9/15/09, Kevin Neufeld <kneufeld at refractions.net> wrote:

> From: Kevin Neufeld <kneufeld at refractions.net>
> Subject: Re: [postgis-users] Center of Points Collection
> To: "PostGIS Users Discussion" <postgis-users at postgis.refractions.net>
> Date: Tuesday, September 15, 2009, 8:51 AM
> 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
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
> 



More information about the postgis-users mailing list