Geometry 几何体中位置7处的postgis程序分析错误
我在下面的SQL代码中找不到错误的原因。请帮帮我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
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