#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: 1554
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