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 : Sélectionner tout - Visualiser dans une fenêtre à part
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