Hm, ich hab den Kontext nicht mehr ganz vor Augen in dem ioch das geschrieben hab. AFAIR kann man ihm Linien und Polygone übergeben (verm. keine Multi-Geometrien!). So wie es ist leider es dir eine Liste mit x und y-Koordinaten und eine ID wie in der ersten Zeile der Ausgabe. Damit du den Punkt als Geometrie bekommst mußt du noch in der ersten Zeile die eine Geometrie als Ausgabe-Parameter definieren und natürlich ausgeben. Also etwa so:
Code:
CREATE OR REPLACE FUNCTION getborderpoints(IN geom geometry, OUT idx integer, OUT xcoord numeric, OUT ycoord numeric, OUT geom geometry)
RETURNS SETOF record AS
$BODY$
--DECLARE
-- xcoord numeric;
-- ycoord numeric;
BEGIN
for i in 1 .. (select st_numpoints($1)) loop
idx := i;
xcoord := st_x(st_pointn($1,i));
ycoord := st_y(st_pointn($1,i));
geom := st_pointn($1,i);
raise notice '%, %, %', i, xcoord, ycoord;
return next;
end loop;
return;
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE Die Fehlermeldung selbst besagt, das du das Ergebnis irgendwohin schreiben willst, wo es nicht geht.
Gruß Uwe
Lesezeichen