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 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: 3945

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: 3945

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

 

Pied de page des forums

Powered by FluxBB