#1 Thu 14 October 2021 17:05
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
QGIS: Afficher le nom du proprietaire dans un atlas
Bonjour,
J'ai un encadré texte dans lequel j'essaye de mettre automatiquement le nom du propriétaire de la parcelle en fonction de l'atlas.
Dans la symbologie de la couche des parcelles, j'ai fait le nécessaire pour que la parcelle de l'atlas soit isolée par un contour rouge avec cette expression :
within($geometry,@atlas_geometry)
Par contre, lorsque je suis dans la mise en page, j'ai donc l'encadré texte où j'ai mis cette expression :
[%'NOM : ' || ' ' || "Civilite" || ' ' ||
aggregate('Proprietaires','concatenate',"Nom comple", concatenator:='-',order_by:="Nom comple",filter:=intersects($geometry, map_get( item_variables('id_page'), 'map_extent'))) %]
Mais cela me renvoie une concaténation de noms de propriétaires. Or je veux uniquement le nom du propriétaire visible dans l'atlas. Je vois que c'est le concatenate qui pose souci. Mais lorsque je l'enlève de l'expression, l'espression est invalide.
Comment faire pour que le nom du propriétaire de l'atlas soit affiché?
Merci.
Hors ligne
#2 Fri 15 October 2021 10:57
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3944
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Bonjour,
Si votre expression within vous permet d'identifier les bonnes parcelles de l'atlas, pourquoi vous ne l'utilisez pas dans la requête de l'atlas pour identifier leurs propriétaires.
Mais cela me renvoie une concaténation de noms de propriétaires. Or je veux uniquement le nom du propriétaire visible dans l'atlas. Je vois que c'est le concatenate qui pose souci. Mais lorsque je l'enlève de l'expression, l'espression est invalide.
Vous ne pouvez pas enlever le concatenate; vous faites une aggrégation donc il faut bien dire à QGIS quelle statistique elle doit appliquer. Ce deuxième paramètre est obligatoire. Et le concatenate ne me semble pas être le souci; c'est votre filtre. Et ce dernier demande bien de prendre en compte toutes les géométries affichée dans l'étendue. Solution: cf ci-dessus?
Hors ligne
#3 Fri 15 October 2021 12:48
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Merci Santanna. En fait c'est simplement ceci qu'il faut mettre :
'NOM : ' || ' ' || "Civilite" || ' ' || "Nom comple"
Cela affiche effectivement ce qui est mis en évidence dans l'atlas
Hors ligne
#4 Fri 15 October 2021 14:56
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Re, je reviens vers vous, en ce qui concerne l'affichage des entités visibles dans l'atlas.
la couche de couverture est celles des parcelles. Dans la symbologie des parcelles, j'ai mis un ensemble de règles pour mettre en évidence celle qui apparaît dans l'atlas avec cette expression : $id=@atlas_featureid.
J'ai découpé un tracé de ligne Haute Tension par cette couche de parcelles Pour afficher uniquement la portion de ligne qui se situe à l'interieur de la parcelle affichée dans l'atlas, j'ai mis un ensemble de règles : within($geometry, @atlas_geometry) --> sans résultat
J'ai mis intersects($geometry, @atlas_geometry). Cela affiche les portions de ligne à l'intérieur de la parcelle, mais aussi celles extérieures qui touchent la parcelle de l'atlas.
Comment faire pour que s'affiche uniquement la portion de ligne qui se situe à l'intérieur de la parcelle de l'atlas?
Merci.
Hors ligne
#5 Fri 15 October 2021 17:12
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3944
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Si within entre les géométries ne marche pas (certainement parce que leurs limites se touchent), on triche un peu en modifiant une des géométries, genre agrandir la parcelle d'un peu pour que ça contienne le tracé
Code:
within($geometry, buffer(@atlas_geometry, 0.5))
Hors ligne
#6 Fri 15 October 2021 21:47
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Ok je vais essayer ça lundi.
Hors ligne
#7 Sat 16 October 2021 14:12
- Julien81
- Participant assidu
- Lieu: Giroussens
- Date d'inscription: 14 Jan 2019
- Messages: 181
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Bonjour,
"Cela affiche les portions de ligne à l'intérieur de la parcelle, mais aussi celles extérieures qui touchent la parcelle de l'atlas."
le problème viens des types de géométries lignes et surfaces que vous croisez, même si vous avez au préalable découpé les lignes intersectants vos parcelles et conservé les portions concernées!
En effet comment définir le fait qu'une ligne touche juste la parcelle ou est à l'interieur? On ne peut pas user d'un critère de surface d'intersection supérieur à 0 => on affiche la portion, mais il faudrait définir un critère de longueur de ligne intersectant votre parcelle>0 (ou x à définir) pour expression validant l'affichage conditionnel.
Sur votre couche de ligne on peut compléter l'expression avec :
Code:
lenght (intersection($geometry, @atlas_geometry))>0
Hors ligne
#8 Sat 16 October 2021 17:11
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1670
Re: QGIS: Afficher le nom du proprietaire dans un atlas
Merci Santanna et Julien81. Je viens d'essayer les 2 expressions. Celle de Santanna fonctionne, celle de Julien81 donne une expression inconnue.
Merci.
Hors ligne