[postgis-users] Creating a simple polygon encompassing a given number of points
Sandro Santilli
strk at keybit.net
Wed Sep 12 09:04:22 PDT 2012
On Wed, Sep 12, 2012 at 09:42:56AM -0600, René Fournier wrote:
> Yes, this works great.
>
> UPDATE territories SET border = (SELECT ST_ConvexHull(ST_Collect(ST_GeomFromText('MULTIPOINT(-111.868842 50.569455, -111.898634 50.569992, -111.907919 50.583764, -111.868859 50.569452)') ) )) WHERE id = 3014;
>
> Now... I'm trying to figure out, how to do the same, except create the border (polygon) from points in another table, e.g.:
>
> UPDATE territories SET border = (SELECT ST_ConvexHull(ST_Collect(
> SELECT location FROM addresses WHERE territory_id = 3014
> ))) WHERE id = 3014;
>
> ...returns "ERROR: function st_collect(geography) does not exist HINT: No function matches the given name and argument types. You might need to add explicit type casts."
>
> So I'm wondering, since both border (final polygon) and location (source of points) are of type geography, what's the best way to go about this? Or should I have just used geometry types? Sorry for the dumb questions, I'm trying to define the schemas by best practices so I don't have to fix them later. Geography seemed right when I started the project.
Collecting a geography seems so easy, dunno why it's not supported.
Anyway you can cast your geographies to geometry for the sake of computation
and then cast back to geography.
I just hope none of your territories cross the dateline
--strk;
More information about the postgis-users
mailing list