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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 14 March 2022 14:02

Dmn.Vincent
Participant occasionnel
Date d'inscription: 8 Mar 2022
Messages: 17

QGIS: Fusion entites en conservant l'ID

Bonjour

Je dois joindre des entités en fonction de leur localisation. Toutes les entités adjacentes doivent en former une seule. Cependant il faut aussi que je retrouves l'informations des ID des entités d'origine composant les entités fusionnées dans la couche produite. Et c'est là que je bloque, je n'arrives pas à intégrer les ID d'origines.

J'ai trouvé des pistes mais sans résultats. Auriez-vous une idée ?

Hors ligne

 

#2 Mon 14 March 2022 19:21

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: Fusion entites en conservant l'ID

Bonjour,
Je dirais,
* à partir de la boîte à outils Traitement:
- Vous regroupez toutes les entités de la couche > une entité multipartie
- Vous explosez cette multipartie en entités d'un seul tenant
* Vous utilisez une expression de type overlay_contains pour récupérer la liste des ID dans la couche explosée

Hors ligne

 

#3 Mon 14 March 2022 21:32

Benoit D
Participant assidu
Date d'inscription: 17 Jul 2018
Messages: 151

Re: QGIS: Fusion entites en conservant l'ID

Je regarderai du côté Agrégation en concaténant le champ ID.

Hors ligne

 

#4 Tue 15 March 2022 12:25

Dmn.Vincent
Participant occasionnel
Date d'inscription: 8 Mar 2022
Messages: 17

Re: QGIS: Fusion entites en conservant l'ID

SANTANNA a écrit:

Bonjour,
Je dirais,
* à partir de la boîte à outils Traitement:
- Vous regroupez toutes les entités de la couche > une entité multipartie
- Vous explosez cette multipartie en entités d'un seul tenant
* Vous utilisez une expression de type overlay_contains pour récupérer la liste des ID dans la couche explosée


Oui merci, je pense que c'est la bonne voie. J'avais déjà  fait les deux premières étapes, mais je n'arrive pas à utiliser une expression de ce type pour la dernière étape et intégrer les données des ID d'origine

Hors ligne

 

#5 Tue 15 March 2022 12:32

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: Fusion entites en conservant l'ID

Bonjour,
Sans détails particuliers sur ce qui coince, je dirais que l'exemple numéro 4 devrait déjà être un bon début, je pense.

Hors ligne

 

#6 Tue 15 March 2022 15:43

Dmn.Vincent
Participant occasionnel
Date d'inscription: 8 Mar 2022
Messages: 17

Re: QGIS: Fusion entites en conservant l'ID

Petit retour : J'ai réussi

J'ai procédé de la manière suivante, si jamais quelqu'un a besoin. A priori ça fonctionne :

- "Regrouper"

- "De morceaux multiples à morceaux uniques"

- Créer un champ ID dans la couche produite avec @row_number pour obtenir un ID_Fusion des parcelles fusionnées

- Joindre par localisation l'ID d'origine, on obtient alors un ligne pour chaque duo ID_Fusion // ID_Origine

- Convertir l'ID d'origine ainsi obtenu en chaine de caractères

- Utiliser l'outil "Agrégation" en groupant en fonction de l'ID_Fusion. (j'ai mis "first_value" en fonction pour l'ID_Fusion afin de conserver des ID cohérentes pour les parcelles fusionnées)

Voilà j'ai donc bien une couche avec mes parcelles fusionnées et un champ (chaîne de caractères) qui concatène les différentes ID d'origine.

Merci pour votre aide !

Dernière modification par Dmn.Vincent (Tue 15 March 2022 15:44)

Hors ligne

 

#7 Tue 15 March 2022 15:59

Dmn.Vincent
Participant occasionnel
Date d'inscription: 8 Mar 2022
Messages: 17

Re: QGIS: Fusion entites en conservant l'ID

Par Contre l'opération regrouper puis éclater fait que je perds la totalité de l'information contenue dans ma table

Hors ligne

 

#8 Tue 15 March 2022 17:35

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: Fusion entites en conservant l'ID

Dmn.Vincent a écrit:

- Créer un champ ID dans la couche produite avec @row_number pour obtenir un ID_Fusion des parcelles fusionnées

- Joindre par localisation l'ID d'origine, on obtient alors un ligne pour chaque duo ID_Fusion // ID_Origine

- Convertir l'ID d'origine ainsi obtenu en chaine de caractères

- Utiliser l'outil "Agrégation" en groupant en fonction de l'ID_Fusion. (j'ai mis "first_value" en fonction pour l'ID_Fusion afin de conserver des ID cohérentes pour les parcelles fusionnées)

Voilà j'ai donc bien une couche avec mes parcelles fusionnées et un champ (chaîne de caractères) qui concatène les différentes ID d'origine.


En mode "j'adapte le quatrième exemple de l'aide de la fonction à votre besoin", obtiendrait-on la même chose dans un nouveau champ avec

Code:

array_to_string(overlay_contains('couche_parcelle', "ID ORIGINE"))

Par Contre l'opération regrouper puis éclater fait que je perds la totalité de l'information contenue dans ma table


Dès lors que vous agrégez des entités, il faut accepter de perdre des choses par ailleurs. Après, tout comme vous récupérez le champ ID, rien ne vous empêche de récupérer tout ou partie des autres champs.

Hors ligne

 

#9 Thu 17 March 2022 18:51

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3945

Re: QGIS: Fusion entites en conservant l'ID

Bonjour,

- Vous regroupez toutes les entités de la couche > une entité multipartie
- Vous explosez cette multipartie en entités d'un seul tenant


A noter que la version 3.26 va intégrer une option pour faire ceci en un clic (https://github.com/qgis/QGIS/pull/47837). Yep, ca fait partie des choses que je kiffe dans cette communauté: quelqu'un en a eu besoin, a payé pour faire développer et ça va nous profiter à tous.

Hors ligne

 

Pied de page des forums

Powered by FluxBB