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

SIG 2025

#31 Thu 27 May 2021 13:37

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1728

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

et ceci :

'Parcelle(s)'  || ' ' || aggregate('Parcelles_ouest',aggregate, expression:= "code_parce" , filter := intersects($geometry, map_get( item_variables(''), 'map_extent')), concatenator:='-', order_by := "code_parce")


Est-ce que je m'en approche? J'ai vraiment du mal à voir comment on place concatenator et order_by

Hors ligne

 

#32 Thu 27 May 2021 13:41

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1728

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

Il a suffi pour que je vous envoie ce test pour que je trouve finalement :

[%'Parcelle(s)'  || ' ' || aggregate('Parcelles_ouest','concatenate',"code_parce", concatenator:='-',order_by:="code_parce",filter:=intersects($geometry, map_get( item_variables(''), 'map_extent')))%]

Hors ligne

 

#33 Mon 31 May 2021 21:14

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1728

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

Je remercie donc Santanna pour m'avoir aidé à trouver le code

[%'Parcelle(s)'  || ' ' || aggregate('Parcelles_ouest','concatenate',"code_parce", concatenator:='-',order_by:="code_parce",filter:=intersects($geometry, map_get( item_variables(''), 'map_extent')))%]


Ceci pour une mise en page ordinaire, mais qu'en est-il lors d'un atlas? doit-on remplacer *$geometry par $atlas_geometry? En tour cas je verrai ça demain. Je vous dis.

Merci

Hors ligne

 

#34 Tue 16 September 2025 14:16

LucieBdD
Juste Inscrit !
Date d'inscription: 14 Apr 2025
Messages: 4

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

Bonjour,

Je reviens sur ce poste car je n'arrive définitivement pas à trouver une réponse à ma question.

Ce script fonctionne très bien :

Code:

[%'Plan des réseaux (' || coalesce(

aggregate(

layer := 'vm_balcons_commune_balcons_9254d2a1_c3ae_4404_b1a4_79bfa13e1b41',

aggregate := 'concatenate',

expression := "comm_no",

filter := intersects(map_get(item_variables('Carte 2'), 'map_extent'), transform( $geometry, 'EPSG:3945', 'EPSG:2154' )),

concatenator := ', '

),

'aucune commune visible'

) || ')'%]

Mais moi j'aimerais n'avoir que la commune dont l'aire d'intersection avec map_extent est la plus importante...
Est-ce possible d'après vous, ou bien est-ce que j'en demande trop ?

Merci d'avance !

Lucie

Hors ligne

 

#35 Tue 16 September 2025 16:34

LucieBdD
Juste Inscrit !
Date d'inscription: 14 Apr 2025
Messages: 4

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

Une personne bienveillante m'a répondu via un autre canal ! smile

Voici le script correspondant à mon besoin :

Code:

[%'Plan des réseaux (' || coalesce(
regexp_substr(
aggregate(
'vm_balcons_commune_balcons_9254d2a1_c3ae_4404_b1a4_79bfa13e1b41',
'concatenate',
"comm_no",
intersects(map_get(item_variables('Carte 2'), 'map_extent'), transform( $geometry, 'EPSG:3945', 'EPSG:2154' )),
'$',
-area(intersection(map_get(item_variables('Carte 2'), 'map_extent'), transform( $geometry, 'EPSG:3945', 'EPSG:2154' )))
)
,'[^$]*'),

'aucune commune visible'

) || ')'%]

Avec ça, j'ai bien le libellé

Plan des réseaux (%commune majoritaire en superficie au sein de map_extent%


Bien cordialement,

Lucie

Hors ligne

 

#36 Tue 16 September 2025 16:40

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

Re: QGIS: Mettre le nom des parcelles automatiquement le composeur

Bonjour,
Quid en rajoutant un order_by à la fonction aggregate, qui calculerait la surface d'intersection?

Code:

order_by := area(intersection(map_get(item_variables('Carte 2'), 'map_extent'), transform( $geometry, 'EPSG:3945', 'EPSG:2154' ))),

Et il faudra remplacer le concatenate par quelque chose comme du array_agg dont vous extrairez le premier (ou dernier?) index.

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo