IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Probleme intersection avec postgis


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    250
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 250
    Points : 96
    Points
    96
    Par défaut Probleme intersection avec postgis
    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 !!

  2. #2
    Candidat au Club
    Homme Profil pro
    Responsable Technique
    Inscrit en
    Mai 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable Technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2012
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour Je ne comprends pas ton utilisation du Centroid dans ta problématique.

    Pour ma part, j'ai souvent le cas inverse et dans ce cas là, je fait une première passe avec st_intersects (qui réponds rapidement) et ensuite j'affine en calculant les aires suites à un st_intersection.

Discussions similaires

  1. [String] Probleme incomprehensible avec split
    Par scorpiwolf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/07/2004, 21h21
  2. [JTextAera][JScrollPane]Probleme mineur avec l'ascenseur
    Par Voxdei dans le forum Composants
    Réponses: 2
    Dernier message: 18/07/2004, 09h52
  3. [VB.NET] - Probleme Label avec Database
    Par codez dans le forum ASP.NET
    Réponses: 4
    Dernier message: 03/06/2004, 17h37
  4. probleme sql avec delphi
    Par lil_jam63 dans le forum Bases de données
    Réponses: 7
    Dernier message: 25/02/2004, 04h32
  5. probleme GRAVE avec directx 9
    Par l'arbre en plastique dans le forum DirectX
    Réponses: 3
    Dernier message: 02/09/2003, 23h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo