Try moving your query into a subquery and then taking the max distance. Also, you can probably drop the subquery you put as a parameter to the generate_series call. Why are you converting the geometry to text, then back to a geometry again?

ie.
SELECT "cellID", max(dist)
FROM (
  -- Your query here, but also select the cellID to group on
  SELECT
    cellID,
    distance_spheroid(
       geometry_centroid,
       ST_PointN(
         ExteriorRing(geometry_zone),
         generate_series(1, ST_NPoints(geometry_zone))
       ),
       'SPHEROID["WGS 84",6378137,298.257223563]'
     ) AS dist
  FROM "208_1_26624_zones"
  WHERE > "cellID"='1'
) AS foo
GROUP BY "cellID";

-- Kevin

My Pid wrote:
Hello again,

I found the generate_series function (yes i am a newbie!) and I can use it in order to calculate the distance between my centroid (geometry_centroid) and my polygon (geometry_zone) with the following request


SELECT (distance_spheroid(geometry_centroid,ST_AsText(ST_PointN(ExteriorRing(geometry_zone), generate_series(1,(SELECT npoints(geometry_zone) FROM "208_1_26624_zones" WHERE "cellID"='1')))), 'SPHEROID["WGS 84",6378137,298.257223563]')) as d FROM "208_1_26624_zones" WHERE "cellID"='1';

Now I can't use the max function because of the following error: "set-valued function called in context that cannot accept a set"
when I use

SELECT max(distance_spheroid(geometry_centroid,ST_AsText(ST_PointN(ExteriorRing(geometry_zone), generate_series(1,(SELECT npoints(geometry_zone) FROM "208_1_26624_zones" WHERE "cellID"='1')))), 'SPHEROID["WGS 84",6378137,298.257223563]')) as d FROM "208_1_26624_zones" WHERE "cellID"='1';


any idea ?

thanks!
Nick


2009/2/18 My Pid <[email protected] <mailto:[email protected]>>

    Hello,

    I would like to know how I could get the maximum distance between a
    POINT and a POLYGON.
    (the POINT i am talking about here is in fact the ST_Centroid of the
    mentionned POLYGON)

    I looked for a function that transform my POLYGON into several POINT
    but without success.

    I am working with longitude, latitude, altitude for POINT
    It is really the max distance that I am looking for (not the minimum
    distance.)
    and "accuracy" is important to me.

    thanks in advance for your help !

    regards,
    Nick




------------------------------------------------------------------------

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

Reply via email to