Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

GeoDataDays 2025

#61 Tue 01 February 2022 19:29

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

Re: QGIS: Atlas a la parcelle par proprietaire

Et il y aura quoi comme géométrie(s) à afficher dans la carte? La parcelle zc24 puis zc25 dans une seconde fiche ou les deux en même temps?


Comme géométrie, il y aura les deux en même temps, car il faut afficher toutes les parcelles appartenant à un ou plusieurs propriétaires.

Hors ligne

 

#62 Wed 02 February 2022 10:07

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

Re: QGIS: Atlas a la parcelle par proprietaire

Et actuellement, dans le cas de proprio et parcelles multiples, vous obtenez quoi au juste? On sait ce que vous voulez mais pas ce que vous obtenez dans cette situation, et donc ce qui manquerait.
Autrement, J'aurais tendance à dire qu'il suffirait de créer une couche qui agrège les parcelles par propriétaires (avec un champ contenant la liste des proprio et un autre pour les parcelles fusionnées), de générer l'atlas à partir de celle-ci et d'utiliser les champs en question.

Hors ligne

 

#63 Wed 02 February 2022 14:31

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

Re: QGIS: Atlas a la parcelle par proprietaire

Voici dans la pièce jointe, ce qu'il me faudrait. 2 Pages
Mon souci est que dans la première page les parcelles sont répétées : ZB 72 ZB 72 ZB 72 ZB 73 ZB 73 ZB 73 ZB 76 ZB 76 ZB 76, alors qu'il faudrait : ZB 72 ZB 73 ZB 76
Ensuite que soient mises en évidence ces 3 parcelles comme  dans la deuxième page.


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

Hors ligne

 

#64 Wed 02 February 2022 16:21

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

Re: QGIS: Atlas a la parcelle par proprietaire

Ce n'est pas surprenant vu que votre couche contient chaque parcelle autant de fois que celle-ci a de propriétaires (ce qui ne me semble pas être un bon design, mais bon...) et que vous utilisez concatenate dans votre expression. Remplacez par concatenate_unique (je vous renvoie à l'aide pour le pourquoi).

PS: je me trompe ou votre requête-ci n'a rien à voir avec vos derniers messages qui portaient sur l'affichage des proprio. Pas très encourageant pour vous aider si vous faites des demandes et passez à autre chose sans conclure.(sans compter l'effort que ça nous demande pour nous replonger dans votre dossier)

Hors ligne

 

#65 Tue 08 February 2022 10:33

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

Re: QGIS: Atlas a la parcelle par proprietaire

Bonjour,

PS: je me trompe ou votre requête-ci n'a rien à voir avec vos derniers messages qui portaient sur l'affichage des proprio


Effectivement, cette requête est différente car les demandes que l'on me renvoie fluctuent. J'essaie d'être le plus précis possible.


J'arrive donc à afficher les parcelles concernées dans l'atlas :

CASE WHEN
aggregate('Proprietaires','count', "Section"  || '' ||  "tex" ,filter:=within($geometry, buffer(@atlas_geometry, 0.5)))= 1 then 'Parcelle :' else 'Parcelles :' end || ' ' ||
aggregate('Proprietaires','concatenate_unique', "Section"  || ' ' ||  case when length ("tex")=1 then concat ('0', "tex") else  "tex" end, concatenator:=' - ',order_by:= "Section",filter:=within($geometry, buffer(@atlas_geometry, 0.5)))


Ce qui donne ça :

Parcelle : XX
Ou Parcelles : XX - YY


Concernant les propriétaires, cela est à nuancer. La couche d'affichage des parcelles est un regroupement des parcelles par propriétaire(s).
Lorsqu'il y a un seul propriétaire avec une seule parcelle, cela fonctionne. La parcelle est mise en évidence et le propriétaire aussi avec cette expression :

'NOM : ' || '' ||  CASE WHEN  "Civilite" is not null THEN  "Civilite" else '' END  || ' ' ||   "PROPRIO"  || '       ' ||  'Pour accord le : .........  Signature :'   ||  '\n'  ||  '\n'  ||  '\n'  || '\n'  ||  '\n'  ||   'en qualité de ' || '' ||  left( "rôles",12) ||  '\n'  || 'reconnaît avoir reçu un exemplaire du présent extrait du plan parcellaire'


Ce qui donne à peu près ça :

Nom : XX                               Pour accord le :                              Signature


Pour le cas de plusieurs propriétaires, cela se répète autant de fois qu'il y a de propriétaires.

Est-il possible de mettre l'ensemble des propriétaires sur une même planche de l'atlas, ce qui donnerait ceci :

Nom : XX                               Pour accord le :                              Signature

Nom : YY                               Pour accord le :                              Signature

Nom : ZZ                               Pour accord le :                              Signature


Merci.

Hors ligne

 

#66 Tue 08 February 2022 18:58

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

Re: QGIS: Atlas a la parcelle par proprietaire

Bonjour,

Effectivement, cette requête est différente car les demandes que l'on me renvoie fluctuent. J'essaie d'être le plus précis possible.


Oui, j'imagine. C'est juste pour être sûr que ce n'était pas une reformulation et que je ne me méprenais pas trop smile

Est-il possible de mettre l'ensemble des propriétaires sur une même planche de l'atlas, ce qui donnerait ceci :

Code:

    Nom : XX                               Pour accord le :                              Signature

    Nom : YY                               Pour accord le :                              Signature

    Nom : ZZ                               Pour accord le :                              Signature


Je m'y essaye wink
Le principe serait de créer une liste (array) des propriétaires de la parcelle, et d'itérer sur celle-ci pour créer et remplir chacune des lignes de l'étiquette. Ca semble marcher en jouant avec les data de la bdtopo. Mais pour avoir essayé pendant un moment de pondre la formule exacte qu'il vous faut avec vos champs, je me rends compte que je ne visualise pas comment votre couche (vos couches?) est organisée donc pour éviter de vous embarquer sur un mauvais chemin, voici l'architecture de la requête.

Code:

array_to_string( -- car on ne peut pas afficher une array dans une zone de texte, elle doit être reconvertie en texte
  array_foreach( -- la fonction qui fait le taf d'itérer sur la liste et formate le texte pour chaque proprio
    aggregate( -- avec l'agrégat array_agg ou la fonction array_agg directement; ça dépend de la structure de vos data
        -- ici les paramètres de l'agrégat pour construire la liste avec les noms de propriétaires pour les parcelles de l'atlas
    ),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),
'\n' -- le saut de ligne entre les proprios
)

Il y a l'alignement du texte à revoir mais bon...

Hors ligne

 

#67 Wed 09 February 2022 10:15

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

Re: QGIS: Atlas a la parcelle par proprietaire

Merci.
Avant d'aller plus loin, je voudrais clarifier sur quelles couches je travaille :

Pour l'affichage du numéro de parcelles, voici l'expression à partir de la couche des propriétaires (272 entités) :

'NOM : ' || '' || CASE WHEN "Civilite" is not null THEN "Civilite" else '' END || ' ' || "PROPRIO" || ' ' || 'Pour accord le : ......... Signature :' || '\n' || '\n' || '\n' || '\n' || '\n' || 'en qualité de ' || '' || left( "rôles",12) || '\n' || 'reconnaît avoir reçu un exemplaire du présent extrait du plan parcellaire'


Pour l'affichage du nom des propriétaires, voici l'expression :

'NOM : ' || '' || CASE WHEN "Civilite" is not null THEN "Civilite" else '' END || ' ' || "PROPRIO" || ' ' || 'Pour accord le : ......... Signature :' || '\n' || '\n' || '\n' || '\n' || '\n' || 'en qualité de ' || '' || left( "rôles",12) || '\n' || 'reconnaît avoir reçu un exemplaire du présent extrait du plan parcellaire'


C'est là que je ne saisis pas trop. Cette dernière expression fait-elle appel à la couche des propriétaires (272 entités) ou à la couche du regroupement des parcelles par propriétaire (140 entités), qui sert de couche de couverture? Cela m'aiderait à y voir beaucoup plus clair.

A la suite de quoi, je pourrais travailler sur votre proposition.

Hors ligne

 

#68 Wed 09 February 2022 10:48

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

Re: QGIS: Atlas a la parcelle par proprietaire

Hello,
Vos deux formules sont identiques, celle des parcelles n'est pas bonne mais on l'a dans vos précédents messages.
La question est bonne parce que c'est à elle que je me suis confrontée. Mais le principe veut que lorsque vous appelez un champ dans un atlas, sans lui indiquer de couche, vous faites appel au champ de la couche de couverture. Donc l'affichage des proprios tape dans la couche à 140 entités. d'où mon interrogation de comment elle pouvait contenir des valeurs en triple.

OFF TOPIC
Votre expression pour afficher les propriétaires peut, me semble-t-il, être écrite plus simplement. Pas besoin de concaténer du texte clair entre eux, écrivez-les en une string. (le multiligne est juste pour pouvoir commenter)

Code:

concat(--je préfère de loin concat car plus lisible et gère le null
'NOM : ',
"Civilite" || ' ', -- renverra null si civilité est vide, sinon la civilité et l'espace après. Pas besoin de case sur null avec ||
"PROPRIO",
' Pour accord le : ......... Signature :\n\n\n\n\nen qualité de ', -- tout ça c'est que du texte donc on les met ensemble. Attention à l'espace en début
left(  "rôles",12),
'\nreconnaît avoir reçu un exemplaire du présent extrait du plan parcellaire' --pareil, que du texte)

Hors ligne

 

#69 Wed 09 February 2022 15:09

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

Re: QGIS: Atlas a la parcelle par proprietaire

Ok merci je viens de mettre l'expression par rapport à la couche de propriétaires regroupés (140 entités) qui sert de couche de couverture :

array_to_string(array_foreach( array_agg ("PROPRIO", filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n''\n' )


Le rendu est ce qui est attendu, mais cela ne donne pas la totalité des parcelles car dans la couche de propriétaires regroupés, il n'y a pas toutes les parcelles.

Il faut donc faire appel à la couche des propriétaires (272 entités), mais là je coince :

array_to_string(array_foreach( array_agg(aggregate('Proprietaires','concatenate_unique', "PROPRIO", concatenator:=' - ',order_by:= "PROPRIO",filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n' )


Résultat invalide.

Hors ligne

 

#70 Wed 09 February 2022 15:15

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

Re: QGIS: Atlas a la parcelle par proprietaire

Cela fonctionne :

array_to_string(array_foreach( aggregate  ('Proprietaires', 'array_agg ',"PROPRIO", concatenator:=' - ',order_by:= "PROPRIO",filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n' )


Mais cela répète le propriétaire autant de fois qu'il y a de parcelles.

Hors ligne

 

#71 Wed 09 February 2022 22:36

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

Re: QGIS: Atlas a la parcelle par proprietaire

Le rendu est ce qui est attendu, mais cela ne donne pas la totalité des parcelles car dans la couche de propriétaires regroupés, il n'y a pas toutes les parcelles.


Les parcelles ne vous intéressent pas, si? Vous voudriez pas partager un affichage de vos tables attributaires, en gribouillant les noms? Parce que là, c'est compliqué, pour moi, de comprendre de quoi il retourne exactement.

Hors ligne

 

#72 Wed 09 February 2022 22:54

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

Re: QGIS: Atlas a la parcelle par proprietaire

Comme il n'y pas toutes les parcelles dans la couche du regroupement de parcelles (140 entités), car elles sont regroupées par propriétaire (par exemple, une parcelle XX et une parcelle YY regroupées ne formeront qu'une seule parcelle nommée du nom de la première, c'est-à-dire XX, la YY disparaissant).
Donc j'ai fait appel à la couche des propriétaires entière non regroupée des 272 entités. Et j'ai fait appel à cette expression :

array_to_string(array_foreach( aggregate  ('Proprietaires', 'array_agg ',"PROPRIO", concatenator:=' - ',order_by:= "PROPRIO",filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n' )


Elle fonctionne mais les propriétaires sont répétés autant de fois qu'il y a de parcelles.
Exemple :
Propriétaire AA de la parcelle XX il y aura :
Nom : AA              Pour accord le :           Signature :

Mais Propriétaire AA des parcelles XX et  YY, il y aura :
Nom : AA              Pour accord le :           Signature :
Nom : AA              Pour accord le :           Signature :

Si ce n'est pas clair, je vous enverrai un affichage de la table attributaire
En tout cas, cette expression est sur le point de fonctionner.

Hors ligne

 

#73 Wed 09 February 2022 23:31

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

Re: QGIS: Atlas a la parcelle par proprietaire

Dans le cadre de l'affichage des parcelles, j'utilise cette expression sur la couche de l'ensemble des propriétaires - 272 entités :

CASE WHEN
aggregate('Proprietaires','count', "Section"  || '' ||  "tex" ,filter:=within($geometry, buffer(@atlas_geometry, 0.5)))= 1 then 'Parcelle :' else 'Parcelles :' end || ' ' ||
aggregate('Proprietaires','concatenate_unique', "Section"  || ' ' ||  case when length ("tex")=1 then concat ('0', "tex") else  "tex" end, concatenator:=' - ',order_by:= "Section",filter:=within($geometry, buffer(@atlas_geometry, 0.5)))


Il arrive qu'il y ait plusieurs parcelles.

Dans le cadre de l'affichage des propriétaires, si je fais appel à la couche regroupée des propriétaires - 140 entités - avec l'expression :

array_to_string(array_foreach( array_agg ("PROPRIO", filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n''\n' )


Cela fonctionne mais pas lorsqu'un ou plusieurs propriétaires détiennent plusieurs parcelles - le cadre d'affichage des propriétaires est blanc.
C'est pour cela que je fais appel à la couche des propriétaires avec cette expression :

array_to_string(array_foreach( array_agg ("PROPRIO", filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n''\n' )


Mais comme je l'ai écrit, chaque propriétaire est répété autant de fois qu'il y a de parcelles.

Hors ligne

 

#74 Thu 10 February 2022 09:38

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

Re: QGIS: Atlas a la parcelle par proprietaire

Bonjour,

Voici un aperçu des deux tables attributaires avec deux mêmes propriétaires (XX et YY) détenant les mêmes parcelles ZA 15, ZH 6 et ZH 45.
- Propriétaires (272 entités). 6 entités car (2 propriétaires * 3 parcelles)
- propriétaires regroupes (140 entités). 2 entités car regroupement des parcelles par propriétaire. Seule la parcelle ZH 6 est mentionnée. Les parcelles ZA 15 et ZH 45 ont disparu.

1/ En prenant la couche des propriétaires regroupes, qui sert de couche de couverture, pour l'affichage des noms des propriétaires, le cadre prévu à cet effet est blanc, alors que dans le cadre d'affichage des parcelles, il y a les 3 parcelles.
2/ Je fais donc appel à la couche des Propriétaires, avec l'expression

array_to_string(array_foreach( array_agg ("PROPRIO", filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
        concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
      ),'\n''\n' )


Cela fonctionne mais les propriétaires sont répétés autant de fois qu'il y a de parcelles.
Le fichier ZA15_ZH6_ZH45.jpeg est une capture d'écran qui donne l'affichage des propriétaires à partir de la couche des propriétaires.


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

Hors ligne

 

#75 Thu 10 February 2022 19:41

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

Re: QGIS: Atlas a la parcelle par proprietaire

Bonjour,

Comme il n'y pas toutes les parcelles dans la couche du regroupement de parcelles (140 entités)[...] Seule la parcelle ZH 6 est mentionnée. Les parcelles ZA 15 et ZH 45 ont disparu.


Pourquoi? N'est-ce pas la couche de regroupement? On est bien d'accord que les trois parcelles forment la géométrie des entités 1 et 2 de la table "Propriétaires_regroupes"? Si oui, si les parcelles sont à l'intérieur du périmètre, il me semble erroné de renseigner un champ "parcelle" avec une seule des entités concernées. Non seulement c'est trompeur et potentiellement source d'erreurs pour vous dans le futur, mais en agrégeant les parcelles concernées dans le champ "Parcelle" de proprio_regroupes, il suffira d'afficher/formater le contenu pour lister les parcelles et vous pourriez même vous passer de ces appels à la couche propriétaires.

2/ Je fais donc appel à la couche des Propriétaires, avec l'expression


Je ne suis pas sûr que cette formule tape dans la couche "propriétaires" vu que cette dernière n'est pas, selon vos propos, la couche de couverture et qu'elle n'y apparait pas. Par contre, je vous avoue que je ne vois pas pourquoi elle renvoie vide avec la couche regroupée. Ca marche chez moi. Telle que votre table est, vous devriez même avoir la même fiche deux fois, si proprio_regroupee est votre couche de couverture. Est-ce le cas?
Vous avez essayé de faire défiler l'atlas pour voir si c'est pareil pour tous les multi?
Quid sans le paramètre filter? Et en remplaçant par

Code:

filter:="Parcelle"=attribute(@atlas_feature, 'Parcelle')

Et c'est volontaire le '\n''\n' à la fin?

Mais comme je l'ai écrit, chaque propriétaire est répété autant de fois qu'il y a de parcelles.


Alors supprimez les doublons. PAS de la table, mais de la requête. Une des façons de procéder et pour lesquelles perso j'abuse du multiligne est de commenter les fonctions. En utilisant -- vous commentez le texte qui suit sur la ligne donc commentez les fonctions les plus à l’extérieur pour tester les fonctions à l'intérieur. puis décommentez petit à petit pour la complexifier. Vous saurez ainsi à chaque étape ce que la portion de code génère comme résultat, à l'aide de la prévisualisation en bas de la fenêtre et pourrez ajuster si ça ne vous plaît pas. array_distinct devrait aider à dédoublonner. Genre, pour reprendre un précédent code (allégé mais non testé)

Code:

array_to_string(
  array_foreach( 
    array_distinct(
      aggregate ('Proprietaires',
                 'array_agg',
                 "PROPRIO",
                 filter:=within($geometry, buffer(@atlas_geometry, 0.5))
                )
    ),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),
'\n' )

Hors ligne

 

#76 Thu 10 February 2022 20:17

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

Re: QGIS: Atlas a la parcelle par proprietaire

Comme il n'y pas toutes les parcelles dans la couche du regroupement de parcelles


Il s'agit d'un regroupement par propriétaire, c'est-à-dire que dans la couche des propriétaires, un propriétaire qui a trois parcelles n'aura qu'une seule entité au lieu des 3 parcelles dans la couche non regroupée des propriétaires. Donc ces trois parcelles ne forment qu'une seule entité dans la couche des propriétaires regroupés.

On est bien d'accord que les trois parcelles forment la géométrie des entités 1 et 2 de la table "Propriétaires_regroupes"?


Oui mais ces trois parcelles ne forment qu'une seule géométrie pour chaque propriétaire

Si oui, si les parcelles sont à l'intérieur du périmètre, il me semble erroné de renseigner un champ "parcelle" avec une seule des entités concernées


vous faites allusion à quel cadre de renseignement, celui des parcelles ou des proprios?

filter:="Parcelle"=attribute(@atlas_feature, 'Parcelle')


Je vais voir ça avec la couche des propriétaires regroupés

mais en agrégeant les parcelles concernées dans le champ "Parcelle" de proprio_regroupes, il suffira d'afficher/formater le contenu pour lister les parcelles et vous pourriez même vous passer de ces appels à la couche propriétaires.


Comment agréger le champ "Parcelle"?

Pourtant l'expression des propriétaires, vous avez essayé? Chez moi cela fonctionne mais avec le dédoublement des propriétaires pour autant de parcelles. Je vais intégre array_distinct pour voir.

Hors ligne

 

#77 Thu 10 February 2022 21:57

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

Re: QGIS: Atlas a la parcelle par proprietaire

Donc ces trois parcelles ne forment qu'une seule entité dans la couche des propriétaires regroupés.


Et l'idée est que la liste des trois parcelles qui constituent cette unique entité soit dispo dans les propriétés de ladite entité. Pour le comment, c'est plus ou moins ce que vous faites déjà avec votre aggregate + concatenate. Il faut juste stocker le résultat dans un champ.

Hors ligne

 

#78 Fri 11 February 2022 09:50

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

Re: QGIS: Atlas a la parcelle par proprietaire

Votre remarque de ne pas utiliser la couche des propriétaires (272 entités) est pertinente car les résultats sont parfois, souvent biaisés. En fait je fais appel à cette couche pour l'affichage des parcelles et des propriétaires dans leur cadre respectif.
Il apparaît lorsqu'il y a plusieurs propriétaires pour plusieurs parcelles, selon l'exemple suivant :

Parcelles     Propriétaire
   AA                 1
   BB                 1                       
   CC                1
   DD                1

Parcelles     Propriétaire
   AA                 
   BB                 2                       
   CC                2
   DD                2


Il devrait y avoir dans le cadre des parcelles

Parcelles : BB - CC - DD
et dans celui des propriétaires
Nom : 1
Nom : 2


Et sur une autre feuille, dans le cadre des parcelles

Parcelle : AA
et dans celui des propriétaires
Nom : 1


Or, j'ai ceci

Parcelles : AA - BB - CC - DD
et dans celui des propriétaires
Nom : 1
Nom : 2


Je dois donc me reporter sur votre idée d'utiliser la couche des propriétaires, à partir d'un champ créé d'aggrégation

Hors ligne

 

#79 Fri 11 February 2022 14:00

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

Re: QGIS: Atlas a la parcelle par proprietaire

Et l'idée est que la liste des trois parcelles qui constituent cette unique entité soit dispo dans les propriétés de ladite entité. Pour le comment, c'est plus ou moins ce que vous faites déjà avec votre aggregate + concatenate. Il faut juste stocker le résultat dans un champ.


Comment voulez-vous que les parcelles XX et YY soient stockées dans un champ?
De ce manière : XX - YY?

J'ai donc essayé cette expression dans le champ créé dans la table des propriétaires regroupés. Elle est valide, mais sans résultat .

aggregate('Proprietaires','concatenate', "Parcelle", concatenator:=' - ',order_by:= "Section",filter:=within($geometry, buffer(@atlas_geometry, 0.5)))

Hors ligne

 

#80 Fri 11 February 2022 15:14

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

Re: QGIS: Atlas a la parcelle par proprietaire

Elle est valide, mais sans résultat .


Commentez/enlevez les paramètres optionnels de la fonction et regardez si ça renvoie des résultats avec les valeurs obligatoires. Puis vous rajouterez un à un les paramètres optionnels, jusqu'à trouver qu'un problème réside dans l'utilisation de @atlas_geometry, car vous essayez d'éditer une couche et n'êtes pas dans une mise en page. Cela dit, si vous parcourez votre couche, au moins une entité devrait être remplie, si l'atlas est actif dans la mise en page. non?
La syntaxe correcte dans cette situation devrait, je pense, être (voir description du paramètre filtre de aggregate)

Code:

within($geometry, buffer(geometry(@parent), 0.5))

Et veillez à vous assurer que la table de destination est suffisamment grande pour accueillir les numéros de parcelles agrégés. Et commencez par créer dans un second champ pour ne pas casser tout ce que vous aviez mis en place.

Hors ligne

 

#81 Fri 11 February 2022 16:34

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

Re: QGIS: Atlas a la parcelle par proprietaire

Voici avec l'expression suivante ce que j'ai pu en tirer. J'ai créé un champ à cette occasion (concat_pro).
En pj; un aperçu de la table. Il y a pour chaque propriétaire les parcelles concernées.
Et ensuite? J'avoue que j'ai du mal à passer à l'étape suivante.
Expression :

array_to_string(array_foreach( array_agg ("PROPRIO", filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n''\n' )


Cela fonctionne mais :
Si un propriétaire A a en commun 3 parcelles avec deux autres propriétaires B et C, il sera affiché dans la liste de propriétaires avec B et C.

Mais si ces propriétaires B et C ont en commun 1 parcelle supplémentaire, le propriétaire A se verra attribuer aussi cette parcelle supplémentaire. En quoi le champ concat_pro peut-il aider?


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

Hors ligne

 

#82 Fri 11 February 2022 17:23

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

Re: QGIS: Atlas a la parcelle par proprietaire

Pourtant l'expression des propriétaires, vous avez essayé? Chez moi cela fonctionne mais avec le dédoublement des propriétaires pour autant de parcelles. Je vais intégre array_distinct pour voir.


Avez-vous au moins testé ceci? Ou le code que je vous suggérais hier à 19h41?

Hors ligne

 

#83 Fri 11 February 2022 19:32

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

Re: QGIS: Atlas a la parcelle par proprietaire

J"ai essayé votre expression faisant appel à la couche de propriétaires, mais cela induit des erreurs

array_to_string(
  array_foreach(
    array_distinct(
      aggregate ('Proprietaires',
                 'array_agg',
                 "PROPRIO",
                 filter:=within($geometry, buffer(@atlas_geometry, 0.5))
                )
    ),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),
'\n' )


Et donc comme je l'ai indiqué à 09h50 ce matin, voici le type d'erreurs qui en émerge :
Il apparaît que lorsqu'il y a plusieurs propriétaires pour plusieurs parcelles, il arrive ceci selon l'exemple suivant :

Parcelles     Propriétaire
       AA                 1
       BB                 1                       
       CC                1
       DD                1

    Parcelles     Propriétaire
       AA                 
       BB                 2                       
       CC                2
       DD                2


Il devrait y avoir dans le cadre des parcelles

    Parcelles : BB - CC - DD
    et dans celui des propriétaires
    Nom : 1
    Nom : 2


Et sur une autre feuille, dans le cadre des parcelles

    Parcelle : AA
    et dans celui des propriétaires
    Nom : 1


Or, j'ai ceci

    Parcelles : AA - BB - CC - DD
    et dans celui des propriétaires
    Nom : 1
    Nom : 2


Donc je fais appel à la couche des propriétaires regroupés (140 entités), dans laquelle j'ai créé un nouveau champ (concat_pro)qui répertorie la ou les parcelles par propriétaire. Que puis-faire avec ce champ?

Hors ligne

 

#84 Sat 12 February 2022 18:03

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

Re: QGIS: Atlas a la parcelle par proprietaire

Je crois avoir saisi. Pour :
- le cadre des parcelles, je dois faire appel à la couche des propriétaires regroupés, sur le champ concat-pro, qui regroupe par concaténation les parcelles.
- le cadre des propriétaires, je dois faire appel à la couche des propriétaires regroupés, sur le champ PROPRIO

Hors ligne

 

#85 Mon 14 February 2022 15:10

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

Re: QGIS: Atlas a la parcelle par proprietaire

J'ai été un peu trop optimiste. J'avoue ne pas savoir trop comment faire pour afficher les noms de propriétaires et leurs parcelles dans leurs cadres respectifs.

Hors ligne

 

#86 Mon 14 February 2022 17:42

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

Re: QGIS: Atlas a la parcelle par proprietaire

Dans le cadre des parcelles, j'ai mis ça et cela fonctionne :

case when $id=@atlas_featureid then  "concat_pro" end


Dans le cadre des propriétaires, j'ai mis ça :

array_to_string(array_foreach( array_agg (case when $id=@atlas_featureid then  "PROPRIO" end, filter:=within($geometry, buffer(@atlas_geometry, 0.5))),
    concat( 'Nom : ', @element, '             Pour accord le :                      Signature : ')
  ),'\n''\n' )


Cela a l'air de fonctionner mais en cas de plusieurs propriétaires, cela crée autant de lignes qu'il y a de propriétaires. C'est ce qui est demandé mais un propriétaire a au moins une des parcelles dans Nom : il n'y aura rien.

Hors ligne

 

#87 Mon 14 February 2022 19:01

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

Re: QGIS: Atlas a la parcelle par proprietaire

Bonjour,

case when $id=@atlas_featureid then  "concat_pro" end


Que renvoie concat_pro, tout court, sans la condition?

C'est ce qui est demandé mais un propriétaire a au moins une des parcelles dans Nom : il n'y aura rien.


Désolé, Pas compris.

Hors ligne

 

#88 Mon 14 February 2022 19:31

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

Re: QGIS: Atlas a la parcelle par proprietaire

Que renvoie concat_pro, tout court, sans la condition?


Je l'ai fait et ne me rappelle plus ce que cela renvoie, mais cela n'avait pas l'air concluant. Je vous dirai ça demain au bureau.

Désolé, Pas compris.


Moi non plus. Cela a été écrit dans l'empressement.
Je voulais écrire ceci :

C'est ce qui est demandé mais si un propriétaire n'a pas toutes les parcelles, dans Nom : il n'y aura rien.


Le souci est décrit dans l'exemple suivant :
2 parcelles concernent 3 propriétaires (XX - YY - ZZ). 1 parcelle supplémentaire concerne un seul de ces trois propriétaires (YY).

Lorsque les deux parcelles sont mentionnées, il y aurait
Nom : XX
Nom : YY
Nom : ZZ

Lorsque la parcelle supplémentaire est mentionnée, il y aurait :
Nom :
Nom : YY
Nom :

Désolé de ne pas être plus clair, je suis à la maison.

Hors ligne

 

#89 Tue 15 February 2022 09:45

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

Re: QGIS: Atlas a la parcelle par proprietaire

Que renvoie concat_pro, tout court, sans la condition?


Effectivement pas besoin de condition.

Désolé, Pas compris.


Je fais donc appel à la couche des propriétaires regroupés (140 entités) qui provient du regroupement de la couche des propriétaires (272 entités) à partir du nom des propriétaires.
Un exemple précis :

Une parcelle ZL 74 qui appartient à deux propriétaires XX et YY. Cela créé deux feuilles comme ceci :

1ère feuille :

Cadre des parcelles : ZL 74
Cadre des propriétaires :
Nom : XX       Pour accord le :        Signature :
Nom :        Pour accord le :        Signature


2ème feuille :

Cadre des parcelles : ZL 74
Cadre des propriétaires :
Nom :        Pour accord le :        Signature :
Nom : YY       Pour accord le :        Signature


En fait, il ne faudrait qu'une seule feuille telle que :

Cadre des parcelles : ZL 74
Cadre des propriétaires :
Nom : XX       Pour accord le :        Signature :
Nom : YY       Pour accord le :        Signature

Hors ligne

 

#90 Tue 15 February 2022 14:29

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

Re: QGIS: Atlas a la parcelle par proprietaire

Une parcelle ZL 74 qui appartient à deux propriétaires XX et YY. Cela créé deux feuilles comme ceci :


Par deux feuilles, vous entendez par là que deux séries de pages différentes sont générées lors de l'export pour cette entité? Ou qu'une deuxième page se crée dans sa mise en page? ou autre chose? Et ça contient tous les autres objets de la mise en page?
Quoi qu'il en soit, je vous avoue que j'ai du mal à voir comment une expression (laquelle utilisez-vous finalement?) collée dans un objet de type texte au sein d'une mise en page, peut affecter la génération de l'atlas. Vous êtes sûr qu'il n'y a pas une expression quelque part collée sur les propriétés de l'atlas en lui-même.

Cela dit, je ne vois pas non plus pourquoi le cadre des  proprios est rempli tantôt avec l'un, tantôt avec l'autre. Serait-il possible de montrer un extrait de la table proprio_regroupes concernant toutes les occurrences de la parcelle ZL 74 par ex (notamment, les champs proprio, concat_pro, parcelle -- biffez les infos d'identification mais laissez voir la structure du contenu du champ svp) ainsi que le ou les extraits graphiques (ce qui m'intéresse ici, c'est la relation spatiale entre proprietaires et propio_regroupes) correspondants.
Pour info, il est possible de cacher ponctuellement des champs de la table attributaire (clic droit sur l'en-tête de colonne >> organiser colonnes)

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo