Bonjour,

J'ai un souci lors d'un résultat de requête qui ne me semble pas conforme à ce que je souhaite. J'utilise des fonctions spatiales de postgis et je souhaite avoir des objets qui ne sont pas inclus dans d'autres geométries. Voici ma requête :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
WITH parcelle_acqui as (SELECT f_transaction_fonciere.acte_parcelle.id_parcelle as parcelle_id,public.fon_parcelle_transaction.the_geom as parcelle_geom
FROM public.fon_parcelle_transaction INNER JOIN f_transaction_fonciere.acte_parcelle ON public.fon_parcelle_transaction.id = f_transaction_fonciere.acte_parcelle.id_parcelle 
INNER JOIN f_transaction_fonciere.acte ON f_transaction_fonciere.acte_parcelle.id_acte = f_transaction_fonciere.acte.id_acte
WHERE f_transaction_fonciere.acte.type = 'Acquisition') 
SELECT DISTINCT parcelle_acqui.parcelle_id FROM parcelle_acqui,public.fon_parcelle_cavm 
WHERE ST_IsValid(parcelle_acqui.parcelle_geom) AND ST_Disjoint(ST_Centroid(parcelle_acqui.parcelle_geom),public.fon_parcelle_cavm.the_geom)
ORDER BY parcelle_acqui.parcelle_id;
Le premiere partie de la requete me sert à faire un tri sur des parcelles. J'intersecte ces parcelles (je prends le centroid) avec une autre couche et je souhaite avoir comme résultat les objets n'intersectant pas avec les objets de l'autre couche. Bizarrement , je retrouve dans le résultat des parcelles intersectant avec des objets de l'autre couche.

J'ai essyé plusieurs methode en remplaçant ST_Disjoint par NOT ST_Intersects ou NOT_STWithin et j'ai le même résultat.

Connaissez vous la meilleure méthode pour obtenir des objets n'étant pas inclus dans d'autres ?

Merci pour votre aide !!