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

 

Pied de page des forums

Powered by FluxBB