Pages: 1 2
- Sujet précédent - QGIS: Mettre le nom des parcelles automatiquement le composeur - Sujet suivant
#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 !
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
Pages: 1 2
- Sujet précédent - QGIS: Mettre le nom des parcelles automatiquement le composeur - Sujet suivant