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

Printemps des cartes 2024

#1 Fri 16 December 2022 18:52

fanou
Participant occasionnel
Date d'inscription: 26 Jul 2019
Messages: 32

Boucle pour dupliquer x fois la même géométrie

Bonjour à tous,

J'ai besoin de dupliquer x fois, disons 10 fois la géométrie d'une couche qui n'a qu'une seule géométrie (couche A).

Je sais comment créer une nouvelle couche (Couche B) à partir de la couche A, mais je ne sais pas comment le répéter 10 fois, j'ai regardé du côté des boucles mais je ne comprends pas tout....


Code:

drop sequence if exists seq_test_gid;
create sequence seq_test_gid start with 1;

drop table if exists couche B CASCADE;
create table couche B as
select
  nextval('seq_test_gid') as gid,
 geom
from couche A;

Merci pour votre aide
Stéphane

Hors ligne

 

#2 Sat 17 December 2022 21:13

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: Boucle pour dupliquer x fois la même géométrie

Bonsoir,

generate_series est votre amie (https://www.postgresql.org/docs/15/functions-srf.html)

Nicolas

Hors ligne

 

#3 Mon 19 December 2022 10:57

fanou
Participant occasionnel
Date d'inscription: 26 Jul 2019
Messages: 32

Re: Boucle pour dupliquer x fois la même géométrie

Merci Nicolas.

Je ne vois pas comment utiliser generate_series pour dupliquer ma ligne existante, pouvez-vous m'aider ?

Stéphane

Hors ligne

 

#4 Mon 19 December 2022 13:48

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 981

Re: Boucle pour dupliquer x fois la même géométrie

Je découvre la fonction proposée par Nicolas, et du coup je joue pour l'apprendre.
Voici donc, dans votre cas, ce que vous pourriez écrire :

Code:

SELECT    generate_series(1,10)as gid,
        geom
FROM    "couche A"

Si la "couche A" contient une entité (1 géométrie), vous aurez en sortie 10 entités avec la même géométrie, et un identifiant "gid" allant de 1 à 10.


Sylvain M.

Hors ligne

 

#5 Mon 19 December 2022 16:30

fanou
Participant occasionnel
Date d'inscription: 26 Jul 2019
Messages: 32

Re: Boucle pour dupliquer x fois la même géométrie

Merci Sylvain M., c'est exactement ce que je cherchais.

Stéphane

Hors ligne

 

Pied de page des forums

Powered by FluxBB