Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Sun 24 April 2016 16:03

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

[POSTGIS] st_difference vs difference dans QGIS

Bonjour,

Je bloque depuis hier soir sur st_difference! Je veux obtenir les données qui sont la difference de deux couches de polygones.
Je pense que st_difference est adaptée à ce problème, mais je n'obtiens aucuns résultats et surtout postgis plante (traitement très long).
Voici ma commande :

Code:

select distinct t1.*,  st_difference (t1.geom, t2.geom)
 from 
 "7123_POINT_TOUCHE_TRIANGLEleft_modif" t1,  "union_sondesjoin_netouchepas" t2

j'ai réalisé un test sur QGIS avec un petit jeu de données et ça fonctionne !

POurquoi POSTGIS ne veut pas me renvoyer le résultat? Peut-être qu'il y a une commande plus rapide?

d'avance merci

Ted

Hors ligne

 

#2 Thu 28 April 2016 12:14

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1534

Re: [POSTGIS] st_difference vs difference dans QGIS

Bonjour,

Aie ! ne faites jamais (ou alors en faisant très attention) de requetes de ce type sans lier les deux tables intervenant dans la requete.
En faisant:

select t1.id, t2.id
from t1, t2;

Vous demander la combinatoire de toutes les lignes de t1 x toutes celles de t2 (30 000 lignes dans une table, 1000 dans l'autre et hop: 30 millions de lignes générées, 30 millions de fois st_difference !!)

Il faut ajouter une jointure entre les deux tables: ici, une jointure spatiale: vous ne voulez faire la différence de deux objets que si ceux-si sont en relation spatiale:

select distinct t1.*,  st_difference (t1.geom, t2.geom)
from
"7123_POINT_TOUCHE_TRIANGLEleft_modif" t1 JOIN  "union_sondesjoin_netouchepas" t2 ON st_intersects(t1.geom, t2.geom)

Il faut alors créer des index spatiaux sur les colonnes geom des deux tables (puis analyse dessus).

Nicolas

Hors ligne

 

#3 Thu 28 April 2016 12:27

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

Re: [POSTGIS] st_difference vs difference dans QGIS

Merci Nicolas,

je teste ça dans la journée normalement

Hors ligne

 

#4 Tue 03 May 2016 12:05

Ted
Participant assidu
Date d'inscription: 16 Jan 2007
Messages: 181

Re: [POSTGIS] st_difference vs difference dans QGIS

Bonjour,

J'ai réussi en traitant les informations par différence d'Id ce qui m'a facilité le travail.
Je n'ai toujours pas réussi à faire fonctionner le st_difference, mais je ne me décourage pas. Sachant, que j'ai réussi à obtenir ce que je voulais, il fallait juste que je structure correctement mes données.

Tes

Hors ligne

 

Pied de page des forums

Powered by FluxBB