Geometry 几何体中位置7处的postgis程序分析错误

Geometry 几何体中位置7处的postgis程序分析错误,geometry,gis,geospatial,postgis,procedure,Geometry,Gis,Geospatial,Postgis,Procedure,我在下面的SQL代码中找不到错误的原因。请帮帮我 CREATE OR REPLACE FUNCTION public.get_points(loc text) RETURNS SETOF points_nearby AS $BODY$ DECLARE rec points_nearby; points text[]; j int; poi varchar; length int; BEGI

我在下面的SQL代码中找不到错误的原因。请帮帮我

CREATE OR REPLACE FUNCTION public.get_points(loc text)
  RETURNS SETOF points_nearby AS
$BODY$
    DECLARE
            rec points_nearby;
        points text[];
        j int;
        poi varchar;
        length int;
    BEGIN
        points := string_to_array(loc, ',');
        length := array_length(points, 1);
        j = 1;
        while j <= length 
        LOOP
            poi := trim('SRID=4326;POINT('||points[j]||')');
            FOR rec IN select "gid", "tb_elev" as elevation,
            st_x("geom") as x,
            st_y("geom")as y, 
            st_distance( poi::geometry, "geom" ) as distance 
            from 
                (
                select *
                from
                "tb_elev" 
                where
                st_within("geom" ,st_buffer(poi::geometry, 50) )
                ) as a order by distance limit 4  
            LOOP
                RETURN NEXT rec;
            END LOOP;

            j := j + 1;

        END LOOP;           
        RETURN;
    END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100
  ROWS 1000;`



select  get_points('971317 2027702');
创建或替换函数public.get_点(loc文本)
将附近的点设置值_返回为
$BODY$
申报
附近的rec点;
点文本[];
j int;
波瓦查;
长度int;
开始
点:=字符串到数组(loc,,);
长度:=数组长度(点,1);
j=1;

而这是
选择st_x('971317')
的错误。
tb_elev.geom
的数据类型是什么?也不要在(“geom”,st_缓冲区(poi::geometry,50))中使用
st_
;改用“POSTGIS=“2.0.3 r11128”GEOS=“3.3.8-CAPI-1.7.8”PROJ=“Rel。4.8.0,2012年3月6日“GDAL=”GDAL 1.8.1,发布于2011/07/09“LIBXML=”2.7.6“LIBJSON=”未知“拓扑光栅”已安装,tb_elev.geom是几何体(点)列,我也尝试使用st_dwithin函数,但未找到
ERROR:  parse error - invalid geometry
HINT:  "971317" <-- parse error at position 7 within geometry
CONTEXT:  PL/pgSQL function get_points(text) line 15 at FOR over SELECT rows