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 15 September 2023 16:01

FlorianeS
Participant occasionnel
Lieu: Orléans
Date d'inscription: 18 Feb 2014
Messages: 12

QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour à tous,

J'ai deux couches dans mon projet : "departement" à laquelle j'applique un filtre (choix de deux départements) ET cours_eau qui couvre un territoire très vaste.
Je souhaite afficher uniquement les cours d'eau qui intersects ma couche département filtré.
J'ai essayé plusieurs expressions mais je n'arrive pas à trouver la bonne.
Sachant que je n'utilise pas d'atlas et que je n'ai pas de colonne à proprement parlée de géométrie dans les deux couches.

Merci pour votre aide, FlorianeS

Hors ligne

 

#2 Fri 15 September 2023 17:06

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

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour Floriane,

Je souhaite afficher uniquement les cours d'eau qui intersects ma couche département filtré.


Dans la couche, genre en mode filtre? Ou en termes de symbologie/visibilité?
Si 1, pas possible avec le filtre classique car il ignore tout de l'autre couche. Mais possible de créer une couche virtuelle pour faire le job.
Autrement si 2, avec overlay_intersects('departement') comme formule de symbologie catégorisée, tu devrais avoir 0 ou 1 (ou true/false, je sais plus) et donc afficher la catégorie qui t'intéresse. Par contre, je ne sais pas en termes de rapidité de rendu ce que ça vaut...

Hors ligne

 

#3 Mon 25 September 2023 11:26

FlorianeS
Participant occasionnel
Lieu: Orléans
Date d'inscription: 18 Feb 2014
Messages: 12

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour,
Merci pour la solution. Je suis dans le cas n°2, affichage dans la symbologie.
Je n'ai pas besoin de préciser si c'est True ou False ; par défaut, True est pris en compte. L'affichage est un peu long mais ça vient être être de mes données.
Petit souci, j'utilise parfois la version 3.10 qui n'accepte pas cette expression. Vivement que tous les postes soient avec la dernière LTR.
Bonne journée,

Hors ligne

 

#4 Mon 25 September 2023 11:42

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

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour,

Petit souci, j'utilise parfois la version 3.10 qui n'accepte pas cette expression. Vivement que tous les postes soient avec la dernière LTR.


L'extension refFunctions est le précurseur de ces fonctions donc tu devrais y trouver des correspondances (a priori, ce devrait être encore plus long). Et pour assurer la portabilité de ton expression, tu pourrais avoir recours à la variable @qgis_short_version dans un case when. Je pense que c'est 3.16, l'intégration dans QGIS des fonctions (faudrait vérifier le changelog de QGIS)

Hors ligne

 

#5 Thu 05 September 2024 22:05

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Je déterre ce post car j avais des objectifs proches de ceux de l auteur du 1er message, et la réponse de Santana m'a bien aide.

J ai des captages et des commune, et je souhaitais faire une symbologie pour ceux qui sont dans certaines communes.
le overlay_intersects('CommunesDep26', filtre:='Valence') fonctionne.

Cependant, je souhaite le faire dans un cas plus general pour ne pas a avoir a ecrire le nom de la commune partout. Mon
overlay_intersects('CommunesDep26', filtre:="NOM"=@projectbasename) avec le nom du projet, qui est un nom de commune, et que j utilise comme variable, ne fonctionne pas.

Y a t il une solution, sachant que j utilise le "NOM"=@projectbasename pour faire un Atlas centre sur la commune, et que ca marche tres bien.

Merci

Hors ligne

 

#6 Fri 06 September 2024 12:35

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

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour,
On est bien d'accord que le paramètre, c'est filter et non filtre?

Hors ligne

 

#7 Fri 06 September 2024 18:44

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Oui, j'ai ecrit la formule de tete.
C est ca que j'ai en fait

overlay_intersects('ignCom2022_DROME', filter:="NOM"  =  @project_basename  )

et ca ne marche pas.
Alors que pour la symbologie de la couche 'ignCom2022_DROME', si j utilise un filtre "NOM"  =  @project_basename , ca met bien en valeur la commune qui m'interesse.

Hors ligne

 

#8 Mon 09 September 2024 08:54

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1088

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour, votre couche 'CommunesDep26' est elle dans le même SCR que votre couche sur laquelle vous requêtez ?

Hors ligne

 

#9 Mon 09 September 2024 19:06

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour, votre couche 'CommunesDep26' est elle dans le même SCR que votre couche sur laquelle vous requêtez ?


Vous m'avez mis le doute , mais non pour 2 raisons
- J ai verifie le SCR des couches.
- SInon, le overlay_intersects('ignCom2022_DROME', filter:="NOM"  = 'Valence'), par exemple, ne fonctionnerait pas

Hors ligne

 

#10 Mon 09 September 2024 21:42

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

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonsoir,
Pas de faute de saisie dans l'expression? Que renvoie @project_basename tout seul? Pas de discordance entre les valeurs: majuscule, accents...?
Et par "ça ne marche pas" qu'entendez-vous au juste? Que renvoie la prévisualisation en bas de la fenetre d'expression?

Hors ligne

 

#11 Tue 10 September 2024 23:04

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Voila une image jointe.

Le projet est bien un nom de ville, le decoupage de la commune se fait bien correctement. la formule NOM = @project_basename fonctionne


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#12 Tue 10 September 2024 23:09

Tixi
Participant actif
Date d'inscription: 6 Jun 2022
Messages: 126

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

La, on voit que l overlay_intersects fonctoinne, il y a des captages a Valence, des petits triangles.
Mais le nom de l ville ne vient pas de la formule, il est ecrit en dur.

si j utilise "NOM" = @project_basename au lieu du nom de ville en dur, le Test de formule donne zero entites, et la carte egalement.

Je pense qu il ne peut pas evaluer correctement l expression pour une raison ou une autre


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#13 Wed 11 September 2024 15:25

cyrille
Participant assidu
Date d'inscription: 7 Feb 2006
Messages: 401

Re: QGIS/Symbologie: afficher selon l'emprise d'une autre couche

Bonjour, je suis arrivé à ne garder afficher que les entités d'une couche de ponctuels intersectant la couche des département (sur laquelle evidement j'ai ajouté un filtre au fournisseur de données)

intersects(@geometry, geometry(get_feature('DEPARTEMENT_L93', 'NOM_M', 'ALPES-MARITIMES'))) => en tant que regle dans l'onglet symbologie

Autre solution, créer une couche virtuelle

https://gis.stackexchange.com/questions … er-in-qgis

Aucune idée du temps de traitements que ca peut prendre et si Qgis reste utilisable après.

Dernière modification par cyrille (Wed 11 September 2024 17:12)

Hors ligne

 

Pied de page des forums

Powered by FluxBB