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 Mon 27 May 2019 15:12

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3163
Site web

Trucs et astuces : comment virer les trous de polygones qui font x m²

Bonjour,
Pas une question mais une solution. Voilà j'ai fabriqué des polygones (resgeom) qui contiennent des trous, je veux reconstituer ces polygones en enlevant les trous qui font moins de 1000 m² (par exemple):

Code:

WITH p as (SELECT row_number as a,unnest((st_dumprings((st_dump (resgeom)).geom)).path) as b,((st_dumprings((st_dump (resgeom)).geom)).geom) as c
FROM testgeom3 ),  -- On transforme les multipolygones à trous en n polygones sans trous si path = 0 exterior ring si >0 trous
p1 as (SELECT a,b,st_exteriorring(c) as e,st_area(c) as d FROM p   order by a,b), -- on transforme les polygones ext en polyline
p2 as (SELECT a, st_accum(e) as sg FROM p1 WHERE b<>0 AND d >=1000 GROUP BY a), les trous de plus de 1000 m²
p3 as (SELECT a, e FROM p1 WHERE b=0) les enveloppes ext (shells)
SELECT p2.a,CASE WHEN not sg is null THEN st_makepolygon(e,sg) ELSE st_makepolygon(e) END 
into testpoly1 FROM p3 LEFT JOIN p2 ON p2.a=p3.a ORDER BY a -- On reconstitue les polygones soit avec les trous qui restent soit sans.

Voilà si ça peut aider.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#2 Mon 27 May 2019 15:47

tevrard
Participant assidu
Date d'inscription: 23 May 2016
Messages: 319

Re: Trucs et astuces : comment virer les trous de polygones qui font x m²

Merci du partage !

Hors ligne

 

#3 Mon 27 May 2019 15:51

ppluvinet
Participant assidu
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 606

Re: Trucs et astuces : comment virer les trous de polygones qui font x m²

Joli !
J'avais fait quelque chose du même style pour identifier les gros terre-pleins ou rond-point à partir d'un buffer sur le réseau routier.
Merci effectivement pour le partage !


Pascal PLUVINET

Hors ligne

 

#4 Mon 27 May 2019 15:54

Bruno
Membre du bureau
Lieu: Toulouse
Date d'inscription: 22 Jun 2005
Messages: 11727
Site web

Re: Trucs et astuces : comment virer les trous de polygones qui font x m²

La vie est belle, je viens de recevoir ce post dans ma messagerie wink
L'abonnement aux listes de diffusion semble sur la bonne voie!
Je sors...

Hors ligne

 

#5 Mon 27 May 2019 15:57

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9853
Site web

Re: Trucs et astuces : comment virer les trous de polygones qui font x m²

Bruno a écrit:

La vie est belle, je viens de recevoir ce post dans ma messagerie wink
L'abonnement aux listes de diffusion semble sur la bonne voie!
Je sors...


Pour info, c'est activé uniquement pour les modos pour le moment wink

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#6 Mon 27 May 2019 16:14

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3163
Site web

Re: Trucs et astuces : comment virer les trous de polygones qui font x m²

Heu ...

Pour le row_number dans ma requête (première CTE) c'est une valeur issue d'une précédente requête qui utilise la fonction row_number() over().
ça sert juste à identifier de façon unique le multipolygone pour pouvoir le reconstituer correctement après.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB