#1 Fri 25 November 2022 16:03
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
QGIS: interaction entre 2 couches
Bonjour
Je vous explique mon problème, J'ai une couche 'A' qui sont des polygones avec un champs "ID" et "NOMBRE_INTERSECTION", une autre couche 'B' aussi des polygones, et je voudrais savoir combien de polygones de la couche 'B' , sont intersecté par la couche 'A' (pour chaque polygone de la couche 'A', récupérer le dit nombre et le mettre dans le champs "NOMBRE_INTERSECTION".
[*]ID - 1 / NOMBRE_INTERSECTION : 2 - mon polygone 1 (couche A) intersecte 2 polygones (couche B) dans mon champs sur 'A' j'ai '2'
[*]ID - 2 / NOMBRE_INTERSECTION : 4 - mon polygone 2 (couche A) intersecte 4 polygones (couche B) dans mon champs sur 'A' j'ai '4'
[*]ID - 3 / NOMBRE_INTERSECTION : 0 - mon polygone 3 (couche A) intersecte 0 polygones (couche B) dans mon champs sur 'A' j'ai '0'
Et après, refaire la même manipulation avec une couche 'C' aussi de polygone, mais cette fois, la valeur trouvée doit s'ajouter à la valeur existante
[*]ID - 1 / NOMBRE_INTERSECTION : 3 - mon polygone 1 (couche A) intersecte 3 polygones (couche C) dans mon champs sur 'A' j'ai '5'
[*]ID - 2 / NOMBRE_INTERSECTION : 1 - mon polygone 2 (couche A) intersecte 1 polygones (couche C) dans mon champs sur 'A' j'ai '5'
[*]ID - 3 / NOMBRE_INTERSECTION : 5 - mon polygone 3 (couche A) intersecte 5 polygones (couche C) dans mon champs sur 'A' j'ai '5'
J'ai cherché sans trouver de solution.
Par avance merci pour votre aide.
Hors ligne
#2 Fri 25 November 2022 17:52
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: interaction entre 2 couches
Bonjour,
voir les fonctions array_count et overlay_intersects
Code:
array_count(overlay_intersects('nomcoucheB', champB)) -- où champB est un champ non vide de la couche B (ou peut-être utiliser $id à la place?)
Hors ligne
#3 Mon 28 November 2022 10:09
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: interaction entre 2 couches
Bonjour,
Je reviens vers vous, car quand j'utilise l’expression suivante :
Code:
array_count(overlay_intersects('COUCHE_B'), 'ID_MNHN')
je ne peux pas faire 'OK', alors que je n'ai aucune erreurs signaler dans l'expression.
Par avance merci pour votre aide.
Hors ligne
#4 Mon 28 November 2022 11:01
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 995
Re: QGIS: interaction entre 2 couches
Bonjour Vincent,
Vous ne fermez pas la parenthèse au bon endroit : la virgule est après 'COUCHE_B' et les 2 parenthèses se ferment après 'ID_MNHN'.
Sylvain M.
Hors ligne
#5 Mon 28 November 2022 11:06
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: interaction entre 2 couches
Re,
Quand je rentre l’expression :
Code:
array_count(overlay_intersects('COUCHE_B', 'ID_MNHN'))
J'ai une erreur sur le array, argument attendu '2' reçu '1'
merci
Hors ligne
#6 Mon 28 November 2022 12:00
- Vincent Vauchey
- Participant assidu
- Lieu: saint jean de braye
- Date d'inscription: 24 Jan 2006
- Messages: 288
Re: QGIS: interaction entre 2 couches
Bon j'ai trouvé la solution !!!!
Code:
array_count( overlay_intersects( 'COUCHE_B','ID_1' ), 'ID_1')
Merci à tous pour votre aide.
Hors ligne
#7 Mon 28 November 2022 12:15
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3940
Re: QGIS: interaction entre 2 couches
Hello,
Le deuxième argument de overlay_intersects est supposé être de type champ (ou une expression), càd soit avec guillemets doubles "ID_MNHN" ou aucun ID_MNHN. Mais pas avec guillemet simple. Là, je vous avoue que je ne sais pas trop si le résultat obtenu est bien celui escompté.
Hors ligne