Bonjour,
Je cherche à sélectionner les polygones d'une couche en fonction de leur relation spatiale avec les polygones d'une autre couche.
Les données sont stockées dans spatialite et j'utilise donc les fonctions adhoc mais je crois que je n'ai pas compris leur fonctionnement précis.
Objectif: Sélectionner les polygones de la couches B qui sont contenus tout ou partie dans les polygones de la couche A.
Ce que j'ai traduit en SQL comme ceci:
SELECT Blabla
FROM A, B
WHERE ST_Contains(B.geometry, A.geometry)
OR (ST_Intersects(B.geometry, A.geometry)
AND NOT ST_Touches(B.geometry, A.geometry))
GROUP BY id_A
ST_Contains me testant les polygones de B entièrement contenus dans ceux de A
ST_Intersects(B.geometry, A.geometry) AND NOT ST_Touches(B.geometry, A.geometry) testant les polygones de B qui intersectent sans être uniquement voisins des polygones de A.
Cette dernière partie ne fonctionne pas, je continue d'avoir dans ma sélection des polygones de B qui sont uniquement voisin de ceux de A.
Quelqu'un aurait un avis sur la question ?
Je cherche à sélectionner les polygones d'une couche en fonction de leur relation spatiale avec les polygones d'une autre couche.
Les données sont stockées dans spatialite et j'utilise donc les fonctions adhoc mais je crois que je n'ai pas compris leur fonctionnement précis.
Objectif: Sélectionner les polygones de la couches B qui sont contenus tout ou partie dans les polygones de la couche A.
Ce que j'ai traduit en SQL comme ceci:
Citation:
SELECT Blabla
FROM A, B
WHERE ST_Contains(B.geometry, A.geometry)
OR (ST_Intersects(B.geometry, A.geometry)
AND NOT ST_Touches(B.geometry, A.geometry))
GROUP BY id_A
ST_Intersects(B.geometry, A.geometry) AND NOT ST_Touches(B.geometry, A.geometry) testant les polygones de B qui intersectent sans être uniquement voisins des polygones de A.
Cette dernière partie ne fonctionne pas, je continue d'avoir dans ma sélection des polygones de B qui sont uniquement voisin de ceux de A.
Quelqu'un aurait un avis sur la question ?