#1 Tue 03 July 2012 10:29
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
probleme st_difference Postgis
Bonjour,
J'essaye de trouver la difference entre deux couches avec la fonction st_Difference() dans postgis. Dans ces deux couches il y a le trait de cote histolitt super précis avec plein de petites iles etc et une zone_lambda (voir illustration).
un :
create table diff_test
as select st_Difference(a.the_geom,b.the_geom) as the_geom
from zone_lambda a, trait_inter b where a.the_geom && b.the_geom;
ne modifie pas la géométrie de ma zone_lambda et me crée un feuillet de géométries aussi nombreuses qu'il y a d'objet dans ma couche trait_inter...
Je ne sais pas si c'est super clair, enfin si quelqu'un a déjà rencontré ce problème il devrait tilter...
Une soluce ?
Merci
Dernière modification par nawak (Tue 03 July 2012 16:21)
Hors ligne
#2 Tue 03 July 2012 14:33
Re: probleme st_difference Postgis
Bonjour,
je pense qu'il manque le test d'intersection (st_intersects(a.geom, b.geom)
l'opérateur && teste le chevauchement des rectangles d'encombrement.
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#3 Tue 03 July 2012 16:17
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
Re: probleme st_difference Postgis
Salut,
effectivement avec cette méthode je n'ai plus que 800 objets modifiés (je n'ai plus que 800 géométries qui se superposent)...Je viens de m'appercevoir que dans le feuillet de géométrie, la première géométrie est belle et bien différenciée par le trait côte et que les autres géométries sont certainement dues à la présence des îles (voir copie d'écran).
Mais comment faire pour n'obtenir qu'une géométrie (différence trait de côte + trouée par les îles) ? Serait-ce un probleme de polygone /multipolygone ?
Hors ligne
#4 Wed 04 July 2012 09:56
Re: probleme st_difference Postgis
Bonjour,
en calculant la différence entre l'union des objets (équivaut à un seul objet) de la couche trait de côte et la zone lambda.
Par contre la répétitioon des objets montrée dans votre capture d'acran est étrange...
Mathieu BOSSAERT
Association GeoRezo
Hors ligne
#5 Wed 04 July 2012 11:27
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
Re: probleme st_difference Postgis
N'est-ce pas ? Mais j'ai comme l'impression que ce sont les petites îles complétement incluses dans le polygone qui créent la répitition...
Hors ligne
#6 Wed 04 July 2012 18:32
Re: probleme st_difference Postgis
Bonsoir,
la requête ci-dessous retourne la partie marine de la zone :
Code:
WITH union_trait_de_cote AS (SELECT st_union(trait_dec.the_geom) AS the_geom FROM temp.trait_dec) SELECT st_difference(forme_dec.the_geom, union_trait_de_cote.the_geom) AS the_geom FROM temp.forme_dec, union_trait_de_cote;
Celle-ci la partie terreste :
Code:
SELECT st_union(st_intersection(forme_dec.the_geom, trait_dec.the_geom)) AS the_geom FROM temp.forme_dec, temp.trait_dec WHERE st_intersects(forme_dec.the_geom, trait_dec.the_geom);
Bonne soirée,
Mathieu BOSSAERT
Association GeoRezo
Hors ligne