#1 Mon 22 April 2013 17:00
- diophamidou
- Participant assidu
- Date d'inscription: 18 Jan 2006
- Messages: 243
Superposition de polygones
Bonjour, je viens de fusionner deux type de tables Natura 2000(zps et zsc)d'objets polygonaux. L'objectif recherché est de calculer par commune la surface de Natura2000 quelque soit le type.
Seulement j'ai certains polygones qui se superposent.
J'aimerai avoir une seule couche sans superpositions de polygones.
Je pourrais utiliser dans Postgis la fonction st_différence sur les deux couches et puis la fonction st_intersection puis fusionner les 3 tables pour n'en faire qu'une.
Existerait il une fonction postgis qui permet d'une seule opération supprimer les superpositions.
Merci d'avance
Hors ligne
#2 Mon 22 April 2013 18:50
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: Superposition de polygones
Bonjour,
J'ignore s'il y a une fonction spéciale pour ça mais en utilisant la fonction Union de sql, je pense que tu devrais pouvoir obtenir directement ta couche sans les deux intermédiaires. Un truc du genre
Code:
create table natura2000 (geom) as select st_difference (geomA, geomB) from A, B Union select st_intersection(geomA, geomB) from A,B
Hors ligne
#3 Mon 22 April 2013 21:20
- diophamidou
- Participant assidu
- Date d'inscription: 18 Jan 2006
- Messages: 243
Re: Superposition de polygones
Bonsoir et merci pour la réponse,
Ta méthode a l'air de fonctionner mais le résultat est partiel, en effet j'obtiens bien la différence et l'intersection mais il me manque les polygones qui ne sont pas en intersection.
J'ai tenté de rajouté deux autres UNION avec à chaque la fonction st_disjoint d'une part a disjoint de b pour récupérer tous les polygones de a et un d'autre part entre b et a de manière à récupérer tous les polygones de b disjoint de a.
Quand j'ouvre le résultat sous qgis cela ne parait pas absurde, mais les polygones ne sont pas sélectable du fait je pense que je n'ai pas une clé primaire.
Hors ligne
#4 Wed 24 April 2013 12:28
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: Superposition de polygones
Bonjour,
pour les portions non communes, je me demande si un st_symdifference (http://postgis.refractions.net/document … rence.html) n'aurait pas été plus efficace qu'un st_difference tout court. Mais l'essentiel est d'obtenir au final ce qu'on cherche (tant que le calcul ne prend pas des plombes).
Si le problème de numéro non unique se pose toujours, comme dirait Nicolas Ribot que je remercie en passant (http://georezo.net/forum/viewtopic.php?id=84096)
La sequence est votre amie wink
Crée une séquence dans ta base et appelle sa valeur suivante dans chacun de tes select.
Il y a peut-être plus simple mais ça devrait marcher, je pense.
Hors ligne