#1 Tue 15 March 2022 12:22
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
QGIS: Methodo detaillee d'un atlas parcellaire
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 :
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 :
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 : «
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 :
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
'COMMUNE DE ' || '' || "Nom_com"
Affichage dans le cadre texte de de l’échelle
'(Extrait au 1/' || '' || format_number( map_get( item_variables('id_page'), 'map_scale'),0) || ')'
Affichage dans le cadre texte des parcelles
case when regexp_match( "concat_par" , '-' ) then 'parcelles : ' else 'parcelle : ' end || ' ' || "concat_par"
Affichage dans le cadre texte du numéro de plan
'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
'Nom du Fichier : Extrait LSPP' || '_ ' || @project_filename
Affichage dans le cadre texte de la surface papier
'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
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 :
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’
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’
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)))
Hors ligne
#2 Tue 15 March 2022 13:15
Re: QGIS: Methodo detaillee d'un atlas parcellaire
Bonjour,
Et pour le fun, une petite capture d’écran du résultat carto ? :-)
Elise
Géoscope
11 rue de l'Hospice - 19400 Argentat
Tél. : 09 60 47 51 16
Hors ligne
#3 Tue 15 March 2022 13:24
- conejo
- Participant assidu
- Lieu: Lunel
- Date d'inscription: 2 Dec 2005
- Messages: 1668
Re: QGIS: Methodo detaillee d'un atlas parcellaire
Voici la capture d'écran
Dernière modification par conejo (Tue 15 March 2022 13:25)
Hors ligne