prb création d'une fonction utilisant des fonctions de postgis
Bonjour à tous,
je suis débutant dans l'utilisation de PostGreSQL ; je l'utilise avec PostGIS afin d'effectuer des requêtes spatiales.
J'ai deux bases de données : une contenant des infomations ponctuelles : l'autre contient des carrées qui découpe l'espace sous forme de tuiles.
J'aimerai créer une fonction pouvant afficher les données ponctuelles appartenant à l'intérieur d'une tuile.
J'ai essayé de créer une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| CREATE OR REPLACE FUNCTION tuiles(geometry, geometry) RETURNS text AS
$BODY$
DECLARE curseur REFCURSOR;
DECLARE i INTEGER;
BEGIN
i:=1;
OPEN curseur FOR SELECT $2.the_geom FROM $2;
j:=FETCH FORWARD i FROM curseur;
WHILE (j!=0) LOOP
IF Touches($1.the_geom,j)==1 THEN
EXECUTE 'FETCH FORWARD' || i || FROM curseur;
END IF;
i:=i+1;
j:=FETCH FORWARD i FROM curseur;
END LOOP;
END;
$BODY$
LANGUAGE 'plpgsql' IMMUTABLE STRICT;
ALTER FUNCTION tuiles(geometry, geometry) OWNER TO "admin"; |
Tout d'abord je n'arrive pas l'executer et je ne suis pas sûr de sa logique...
Merci de me répondre
P.S. : Explication de la fonction touches tirée du manuel de postgis "Touches(geometry, geometry)
(Effectué par le module GEOS) : retourne 1 (vrai) si les géométries se "touchent spatiallement"."
Benjamin