Message posté par : Jean Cascalès
----------------------------------------
Bonjour,
Un grand merci à SANTANNA, sans lequel je n'aurais pu arriver à cette réalisation.
Je poste ici les solutions pour réaliser un atlas parcellaire par propriétaire(s).
Je suis en train de réaliser des parcelles par propriétaire(s) intersectés par un tracé d
ligne aérienne. La demande initiale était d’automatiser des plans parcellaires qui étaient
réalisés jusqu’alors sous Autocad et manuellement. Le plan est composé de deux pages.
- La première concerne la page de garde, avec la commune, la ou les parcelle(s), la
surface du plan, le nom du plan, l’échelle de représentation,
- La deuxième page concerne l’affichage du nom du ou des propriétaires, et le plan
parcellaire proprement dit.
La première étape consiste à préparer les shapes qui alimenteront l’atlas.
- Tracé : dans un premier temps, découper le tracé par les parcelles. Puis faire une
symbologie par un ensemble de règles :
-----------------
Citation :
within($geometry, buffer(@atlas_geometry, 0.5))
-----------------
Avec cette expression, n’apparaitra que le tracé concerné par le ou les propriétaires en
question dans l’atlas.
- Proprietaires : ce fichier représente les parcelles par propriétaire (un seul
propriétaire par ligne). Faire une symbologie par un ensemble de règles :
-----------------
Citation :
within($geometry, buffer(@atlas_geometry, 0.5)) ))
-----------------
Avec cette expression, n’apparaitra que le tracé concerné par le ou les propriétaires en
question dans l’atlas. Une parcelle est répétée autant de fois qu’il y a de
propriétaires.
- Préparer le shape qui va servir de couverture à l’atlas. Pour ce faire, il faut
o Prendre le shape des propriétaires, et supprimer les doublons
Créer un nouveau shape(‘regroupement parcelles’), avec une création de champ « concat_pro
» pour aggréger les propriétaires avec cette expression : «
-----------------
Citation :
aggregate('Proprietaires','concatenate_unique',concat(
"PROPRIO", concatenator:=' - ',order_by:= "PROPRIO",filter:=
within($geometry, buffer(geometry(@parent), 0.5)))
-----------------
- Regrouper sur concat_pro et nom commune Créer un nouveau shape ‘parcelles regroupées’.
- Créer un champ concat_par pour regrouper les parcelles avec cette expression :
-----------------
Citation :
aggregate('Proprietaires','concatenate_unique', "Section" ||
' ' || case when length ("tex")=1 then concat (to_real('0'),
"tex") else "tex" end, concatenator:=' - ',order_by:=
concat("Section",to_real( "tex" )),filter:= within($geometry,
buffer(geometry(@parent), 0.5)))
-----------------
- Le champ concat_pro sert à afficher le nom des propriétaires et le champ concat_par les
parcelles dans l’atlas
ATLAS :
Choisir comme couche de couverture, ‘parcelles regroupées’
Affichage dans le cadre texte de la commune
-----------------
Citation :
'COMMUNE DE ' || '' || "Nom_com"
-----------------
Affichage dans le cadre texte de de l’échelle
-----------------
Citation :
'(Extrait au 1/' || '' || format_number( map_get(
item_variables('id_page'), 'map_scale'),0) || ')'
-----------------
Affichage dans le cadre texte des parcelles
-----------------
Citation :
case when regexp_match( "concat_par" , '-' ) then 'parcelles : '
else 'parcelle : ' end || ' ' || "concat_par"
-----------------
Affichage dans le cadre texte du numéro de plan
-----------------
Citation :
'Plan n° : Convention' || ' - ' || "Nom_com" || '_' ||
aggregate('Proprietaires','concatenate_unique', "Section" ||
' ' || case when length ("tex")=1 then concat (to_real('0'),
"tex") else "tex" end , concatenator:=' -
',order_by:=concat("Section",to_real( "tex"
)),filter:=within($geometry, buffer(@atlas_geometry, 0.5)))
-----------------
Affichage dans le cadre texte du nom de ficher
-----------------
Citation :
'Nom du Fichier : Extrait LSPP' || '_ ' || @project_filename
-----------------
Affichage dans le cadre texte de la surface papier
-----------------
Citation :
'Surface :' || ' ' || format_number(
(@layout_numpages*@layout_pagewidth/1000),3,'en') || '*' ||
format_number((@layout_numpages*@layout_pageheight/1000),3,'en') || '=' ||
format_number (((@layout_numpages*@layout_pagewidth *
@layout_pageheight)/1000000),2,'en') || '' || 'm²'
-----------------
Affichage des propriétaires
-----------------
Citation :
array_to_string( array_foreach( string_to_array("concat_pro", ' -
'),concat( 'Nom : ', @element, ' Pour accord le : Signature : ')
),'\n\n' )
-----------------
Affichage dans le cadre texte des parcelles :
-----------------
Citation :
case when regexp_match( "concat_par" , '-' ) then 'parcelles : '
else 'parcelle : ' end || ' ' || "concat_par"
-----------------
Affichage dans le cadre texte de l’agrégation des propriétaires dans un nouveau champ de
la couche ‘Regroupement parcelles’
-----------------
Citation :
aggregate('Proprietaires','concatenate_unique',"PROPRIO",
concatenator:=' - ',order_by:= "PROPRIO",filter:= within($geometry,
buffer(geometry(@parent), 0.5)))
-----------------
Affichage dans le cadre texte de l’agrégation des parcelles propriétaires dans un nouveau
champ de la couche ‘parcelles regroupées’
-----------------
Citation :
aggregate('Proprietaires','concatenate_unique', "Section" ||
' ' || case when length ("tex")=1 then concat (to_real('0'),
"tex") else "tex" end, concatenator:=' - ',order_by:=
concat("Section",to_real( "tex" )),filter:= within($geometry,
buffer(geometry(@parent), 0.5)))
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=351153#p351153
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net