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

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

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

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: 3824

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

 

Pied de page des forums

Powered by FluxBB