Kevin,<br><br>Thanks a lot for your "geometry to text" advice.<br><br>It works perfectly now<br><br>Nick<br><br><br>-----------------------------------------------------------------------------------------------------------<br>
Message: 30<br>
Date: Thu, 19 Feb 2009 08:51:21 -0800<br>
From: Kevin Neufeld <<a href="mailto:kneufeld@refractions.net">kneufeld@refractions.net</a>><br>
Subject: Re: [postgis-users] Re: maximum distance between a POINT and<br>
        POLYGON<br>
To: PostGIS Users Discussion <<a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a>><br>
Message-ID: <<a href="mailto:499D8E09.8000205@refractions.net">499D8E09.8000205@refractions.net</a>><br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>
<br>
Try moving your query into a subquery and then taking the max distance.  Also, you can probably drop the subquery you<br>
put as a parameter to the generate_series call.  Why are you converting the geometry to text, then back to a geometry again?<br>
<br>
ie.<br>
SELECT "cellID", max(dist)<br>
FROM (<br>
   -- Your query here, but also select the cellID to group on<br>
   SELECT<br>
     cellID,<br>
     distance_spheroid(<br>
        geometry_centroid,<br>
        ST_PointN(<br>
          ExteriorRing(geometry_zone),<br>
          generate_series(1, ST_NPoints(geometry_zone))<br>
        ),<br>
        'SPHEROID["WGS 84",6378137,298.257223563]'<br>
      ) AS dist<br>
   FROM "208_1_26624_zones"<br>
   WHERE > "cellID"='1'<br>
) AS foo<br>
GROUP BY "cellID";<br>
<br>
-- Kevin<br>
<br>
My Pid wrote:<br>
> Hello again,<br>
><br>
> I found the generate_series function (yes i am a newbie!) and I can use<br>
> it in order to calculate the distance between<br>
>  my centroid (geometry_centroid) and my polygon (geometry_zone) with the<br>
> following request<br>
><br>
><br>
> SELECT<br>
> (distance_spheroid(geometry_<div id=":wb" class="ArwC7c ckChnd">centroid,ST_AsText(ST_PointN(ExteriorRing(geometry_zone),<br>
> generate_series(1,(SELECT npoints(geometry_zone) FROM<br>
> "208_1_26624_zones" WHERE "cellID"='1')))), 'SPHEROID["WGS<br>
> 84",6378137,298.257223563]')) as d FROM "208_1_26624_zones" WHERE<br>
> "cellID"='1';<br>
><br>
> Now I can't use the max function because of the following error:<br>
> "set-valued function called in context that cannot accept a set"<br>
> when I use<br>
><br>
> SELECT<br>
> max(distance_spheroid(geometry_centroid,ST_AsText(ST_PointN(ExteriorRing(geometry_zone),<br>
> generate_series(1,(SELECT npoints(geometry_zone) FROM<br>
> "208_1_26624_zones" WHERE "cellID"='1')))), 'SPHEROID["WGS<br>
> 84",6378137,298.257223563]')) as d FROM "208_1_26624_zones" WHERE<br>
> "cellID"='1';<br>
><br>
><br>
> any idea ?<br>
><br>
> thanks!<br>
> Nick<br>
><br>
><br>
> 2009/2/18 My Pid <<a href="mailto:mamat750@gmail.com">mamat750@gmail.com</a> <mailto:<a href="mailto:mamat750@gmail.com">mamat750@gmail.com</a>>><br>
><br>
>     Hello,<br>
><br>
>     I would like to know how I could get the maximum distance between a<br>
>     POINT and a POLYGON.<br>
>     (the POINT i am talking about here is in fact the ST_Centroid of the<br>
>     mentionned POLYGON)<br>
><br>
>     I looked for a function that transform my POLYGON into several POINT<br>
>     but without success.<br>
><br>
>     I am working with longitude, latitude, altitude for POINT<br>
>     It is really the max distance that I am looking for (not the minimum<br>
>     distance.)<br>
>     and "accuracy" is important to me.<br>
><br>
>     thanks in advance for your help !<br>
><br>
>     regards,<br>
>     Nick<br>
><br>
><br>
><br>
><br>
> ------------------------------------------------------------------------<br>
><br>
> _______________________________________________<br>
> postgis-users mailing list<br>
> <a href="mailto:postgis-users@postgis.refractions.net">postgis-users@postgis.refractions.net</a><br>
> <a href="http://postgis.refractions.net/mailman/listinfo/postgis-users" target="_blank">http://postgis.refractions.net/mailman/listinfo/postgis-users</a></div><br><br>