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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Mooc adress

MOOC Adresse du 4 au 29 novembre 2019

Formation en ligne à destination des élus et techniciens des communes et EPCI
Formation gratuite sur la plateforme FUN
Inscriptions

#1 Mon 27 May 2019 15:12

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 2947
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
Membre
Date d'inscription: 23 May 2016
Messages: 236

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
Membre
Lieu: LYON
Date d'inscription: 6 Aug 2007
Messages: 551

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: Paris
Date d'inscription: 22 Jun 2005
Messages: 10016
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: 9226
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: 2947
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

Partagez  |