Guide du cadastre¶
Version 0.1.2
Module GEO geo.cadastre.guide · compatible GEO 3.2.0 et suivants · licence GPL-3.0-or-later
Pour installer le ZIP, voir Installer un module.

Module GEO qui explique le cadastre aux agents qui débutent : à quoi il sert, comment lire une référence cadastrale, ce que contient MAJIC, comment sont décrits les propriétaires, les terrains et les locaux, et comment lire une fiche parcelle.
- Identifiant :
geo.cadastre.guide - Version : 0.1.2
- Public : agents de la collectivité (pas le grand public)
- État : validé sur un serveur GEO 4.5.0, dans l'application GEO-Cadastre, avec le module GEO API v2 présent
Le module est autonome : il ne modifie pas le module cadastre de l'éditeur et n'interroge aucune donnée. Tout son contenu est embarqué dans le bundle.
Sommaire¶
- Ce que voit l'utilisateur
- Installation
- Réglages du Générateur
- Le contenu
- Modifier le contenu
- Architecture
- Développement
- Nouveau millésime
- Dépannage
- Limites connues
- Suite prévue
- Historique
Ce que voit l'utilisateur¶
Un bouton d'aide sur la carte (« Comprendre le cadastre ») ouvre une fenêtre par-dessus l'application :
- un sommaire à gauche, qui devient une liste déroulante sur écran étroit ;
- neuf chapitres de vulgarisation, avec des boutons « précédent » et « suivant » ;
- un décodeur de référence cadastrale (chapitre 2) : on saisit
38544 AM 194, il affiche l'identifiant complet38544000AM0194et explique commune, préfixe, section et numéro ; - une fiche parcelle annotée (chapitre 7) : les trois blocs de la fiche de GEO-Cadastre (Parcelle, Propriétaires, Locaux) avec des données fictives ; un clic sur une colonne affiche son explication ;
- un lexique de 37 termes avec recherche ; les termes soulignés en pointillés dans le texte y renvoient ;
- des annexes : 14 tables de codes reprises des descriptifs DGFiP, avec une recherche commune ;
- des liens utiles vers les sites de référence ;
- dans l'en-tête, un lien « v0.1.2 · Nouveautés » qui ouvre le journal des évolutions du module (point rouge tant que la dernière version n'a pas été lue).
La fenêtre se ferme par la croix, la touche Échap ou un clic en dehors. Elle rouvre sur la dernière vue consultée (mémorisée dans le navigateur).
Installation¶
- Télécharger le ZIP (
geo-cadastre-guide_AAAAMMJJ-HHMM.zip) depuis la dernière version publiée, ou le construire :npm install, puisnpm run package. - Dans le Générateur : Modules, « + Module », glisser le ZIP.
- Ajouter le module à l'application et renseigner ses réglages.
- Vérifier que l'application comporte le module GEO API v2 (voir ci-dessous), puis publier.
Prérequis : le module GEO API v2¶
Les réglages du Générateur sont lus par l'API GEO, fournie par le module GEO API v2 de la plateforme. Il doit être ajouté à l'application dans le Générateur.
| Application | Comportement du guide |
|---|---|
| Avec GEO API v2 | Fonctionnement normal, réglages pris en compte. Cas validé sur serveur |
| Sans GEO API v2 | Le guide est censé démarrer avec ses valeurs par défaut et l'indiquer dans la console. Cas non testé sur serveur |
Un autre module qui déclare l'API en dépendance fixe empêche, sans GEO API v2, l'application de démarrer (voir Dépannage).
Réglages du Générateur¶
| Réglage | Clé | Défaut | Rôle |
|---|---|---|---|
| Millésime des données | vintage |
vide | Année affichée dans l'en-tête de la fenêtre et dans le chapitre sur MAJIC. Vide : rien n'est affiché |
| Contact du référent cadastre | contact |
vide | Phrase affichée dans le chapitre « Pièges et confidentialité ». Vide : formule générique |
| Ouvrir le guide à la première visite | openOnFirstVisit |
non | Ouverture automatique, une seule fois par navigateur |
| Libellé du bouton | toolName |
Comprendre le cadastre | Info-bulle du bouton et titre de la fenêtre |
| Position du bouton sur la carte | toolPosition |
Haut droite | Emplacement dans la barre d'outils de la carte |
Le millésime est à mettre à jour à la main dans le Générateur quand les données de l'application changent : le module ne le lit pas dans les données.
Le contenu¶
| N° | Chapitre | Identifiant | Source |
|---|---|---|---|
| 1 | À quoi sert le cadastre | role |
Synthèse, à relire |
| 2 | Le plan et la référence cadastrale | plan |
Descriptif NBAT pour la référence ; synthèse pour la diffusion des données, à relire |
| 3 | MAJIC et les fichiers fonciers | majic |
Descriptifs DGFiP |
| 4 | Les propriétaires | owners |
Descriptif PROP |
| 5 | Le non bâti | unbuilt |
Descriptif NBAT |
| 6 | Le bâti, les locaux et les PEV | built |
Descriptifs BATI, PDLL, LLOC |
| 7 | Chercher et lire une fiche | search |
Fiche parcelle de GEO-Cadastre |
| 8 | Aperçu fiscal | tax |
Synthèse, à relire |
| 9 | Pièges et confidentialité | pitfalls |
Synthèse, à relire |
Les vues complémentaires ont pour identifiants glossary, annexes et links.
Sources¶
Les chapitres 3 à 6 et les annexes s'appuient sur les descriptifs DGFiP des fichiers fonciers standard, millésime 2026 (documents datés du 31/03/2026) : propriétaires (PROP), propriétés non bâties (NBAT), propriétés bâties (BATI), PDL-lots (PDLL), lot-local (LLOC), FANTOIR (FANR) et TOPO. Ces PDF ne sont pas versionnés dans le dépôt.
Ce qui reste à faire relire¶
Les chapitres 1, 2, 8 et 9 ne reposent pas sur ces documents. Ils ont été rédigés prudemment mais n'ont pas été validés par un spécialiste. Points à vérifier en priorité par le référent cadastre :
- chapitre 9 : ce qu'un particulier peut obtenir et ce qui ne lui est pas communicable ;
- chapitre 8 : le paragraphe sur les rôles, rédigé sans document source ;
- chapitre 2 : les formats et le rythme de publication sur cadastre.data.gouv.fr ;
- chapitre 1 : le rappel historique et le rôle de la publicité foncière ;
- fiche annotée : les explications de « Surface du bâti » et de « N° de personne (Majic3) », déduites de l'affichage de GEO-Cadastre ;
- chapitre 6 : les types de PDL (BND, CL, CV, TF, CLV, MP) ne sont pas détaillés, le descriptif DGFiP ne donnant que les codes.
Choix éditoriaux¶
- Vulgarisation dans les chapitres, exhaustivité dans les annexes : les chapitres ne citent que les codes courants et renvoient aux tables complètes.
- Données fictives dans la fiche annotée (commune « EXEMPLEVILLE », code 38999), pour ne reproduire aucune donnée nominative.
- Un exemple réel : la référence
38544000AM0194(parcelle AM 194 à Vienne) sert d'exemple dans le chapitre 2 et dans le décodeur. C'est une référence publique, sans nom de propriétaire. - Partie fiscale limitée à un aperçu, sans calcul d'impôt.
Modifier le contenu¶
Tous les textes sont dans src/js/content.js, qui exporte quatre tableaux :
| Export | Contenu | Forme d'un élément |
|---|---|---|
CHAPTERS |
Les chapitres | { id, title, summary, html } |
SHEET |
La fiche parcelle annotée | { title, columns: [{ label, sample, help }] } |
GLOSSARY |
Le lexique | { term, definition, chapter } |
LINKS |
Les liens utiles | { label, url, description } |
Le champ html d'un chapitre est du HTML simple (<p>, <h3>, <ul>, <table>, <code>).
Quelques balises sont interprétées par le guide :
| Balise | Effet |
|---|---|
<a data-term="PEV">…</a> |
Ouvre le lexique sur ce terme (qui doit exister dans GLOSSARY) |
<a data-chapter="built">…</a> |
Va au chapitre indiqué par son identifiant |
<a data-annex="rights">…</a> |
Ouvre l'annexe indiquée par son identifiant |
<aside data-kind="tip">…</aside> |
Encadré bleu : à savoir |
<aside data-kind="warn">…</aside> |
Encadré orange : attention |
<aside data-kind="example">…</aside> |
Encadré vert : exemple |
<div data-widget="reference-decoder"></div> |
Insère le décodeur de référence |
<div data-widget="annotated-sheet"></div> |
Insère la fiche parcelle annotée |
{{vintage}} |
Phrase sur le millésime, selon le réglage du Générateur |
{{contact}} |
Phrase de contact, selon le réglage du Générateur |
Pour ajouter un chapitre, ajouter un élément à CHAPTERS : le sommaire, la numérotation et
les boutons précédent/suivant se mettent à jour seuls.
Pour ajouter une table en annexe, ajouter un élément à ANNEXES dans src/js/annexes.js :
{ id, title, source, columns, rows }.
Après toute modification : npm run package, puis réimporter le ZIP dans le Générateur. Penser à
incrémenter la version dans package.json et src/plugin.geoext.json.
Architecture¶
geo-cadastre-guide/
├── src/
│ ├── plugin.geoext.json # Manifeste : identité, réglages du Générateur
│ ├── preview.png # Vignette du module dans le Générateur
│ ├── assets/plugin.css # Styles, préfixés geo-cadastre-guide-
│ └── js/
│ ├── extension.js # Branchement sur GEO : réglages, bouton de la carte
│ ├── guide.js # La fenêtre : navigation, recherche, composants interactifs
│ ├── content.js # Les textes
│ ├── annexes.js # Les tables de codes
│ ├── reference.js # Le décodeur de référence cadastrale
│ ├── preview.js # Point d'entrée de l'aperçu hors GEO (non livré)
│ └── data/*.json # Tables longues générées depuis les PDF
├── dev/preview.html # Aperçu hors GEO
├── scripts/
│ ├── package.js # Création du ZIP
│ ├── extract-annexes.py # Extraction des tables longues depuis les PDF DGFiP
│ └── test-reference.mjs # Tests du décodeur
└── lib/ # Emplacement du plugin de publication de l'éditeur (non versionné)
Principes retenus :
guide.jsne dépend pas de GEO. Il construit la fenêtre avec le DOM standard et exposecreateGuide(options), qui renvoie{ open, close, toggle, isOpen }. C'est ce qui permet l'aperçu hors GEO et limite le risque de casse lors d'une mise à jour de la plateforme.extension.jsest le seul fichier lié à GEO. Il lit les réglages pargeoApplication.getConfigurationByExtensionKey, puis enregistre le bouton paracfExtensionService.registerMapToolExtension, commegeo-compare-swipe.- La dépendance à l'API GEO est facultative. Le manifeste ne déclare que
bg.acf.base;bg.common.geo.GeoApiest ajouté à l'exécution s'il existe, etgeoApplicationest obtenu par$injector. - Tailles en px dans le CSS, jamais en rem : la taille de police racine de GEO est réduite.
- Convention de langue du dépôt : code en anglais, commentaires et textes en français.
Le ZIP ne contient que main.js, le manifeste, la vignette et assets/. preview.js est
compilé à côté mais n'est pas livré.
Développement¶
npm install
npm test # concordance des versions, décodeur de référence, journal des nouveautés (Node 22 ou plus récent)
npm run build # dist/main.js et dist/preview.js
npm run package # build + geo-cadastre-guide_AAAAMMJJ-HHMM.zip
npm run watch # recompilation à chaque modification
Relire sans passer par GEO¶
Après npm run build, ouvrir dev/preview.html dans un navigateur. Paramètres d'URL :
| Paramètre | Exemple | Effet |
|---|---|---|
view |
?view=built |
Ouvre directement un chapitre ou une vue (glossary, annexes, links) |
vintage |
?vintage=2026 |
Simule le réglage du millésime |
contact |
?contact=Service SIG |
Simule le réglage du contact |
focus |
?focus=.geo-cadastre-guide-sheet |
Fait défiler jusqu'à un élément (sélecteur CSS) |
L'aperçu reproduit la taille de police racine réduite de GEO, mais pas son thème : un contrôle dans l'application reste nécessaire après une modification des styles.
Tests¶
npm test vérifie le décodeur sur 11 références valides (formes complète et abrégée, section à
une lettre, Corse, outre-mer, arrondissement de Lyon, section numérique d'Alsace-Moselle) et 7
saisies invalides. Le reste du module n'a pas de test automatisé.
Publication directe¶
npm run publish envoie le module au Générateur sans passer par le ZIP. Il nécessite le plugin de
l'éditeur (voir lib/README.md) et les variables GEO_SERVER et GEO_ACCESS_TOKEN.
Nouveau millésime¶
Quand la DGFiP publie de nouveaux descriptifs :
# régénère les deux tables longues à partir des PDF (nécessite pdftotext, paquet poppler-utils)
python3 scripts/extract-annexes.py <dossier des PDF> 27
- Relire le résultat dans
src/js/data/: la mise en page des PDF coupe certains libellés sur plusieurs lignes, recollés par heuristique. Pour le millésime 2026, les 271 formes juridiques et les 153 natures de culture ont été contrôlées par sondage, pas ligne à ligne. - Relire les tables recopiées à la main dans
src/js/annexes.js, en les comparant aux paragraphes cités dans leur champsource. - Mettre à jour la mention du millésime :
ANNEX_SOURCEet l'en-tête deannexes.js, la section « Sources » de ce fichier. - Vérifier les chapitres 3 à 6 si le paragraphe « Évolutions du fichier » d'un descriptif signale un changement.
Dépannage¶
| Symptôme | Cause | Solution |
|---|---|---|
L'application ne démarre plus : [$injector:nomod] Module 'bg.common.geo.GeoApi' is not available |
Un module déclarant l'API GEO en dépendance fixe est présent dans une application sans GEO API v2. Le guide n'est pas concerné : pour lui, l'API est facultative | Ajouter le module GEO API v2 à l'application |
| Le guide s'ouvre mais ignore les réglages | GEO API v2 absent de l'application (la console affiche « API GEO absente ») | Ajouter le module GEO API v2 |
| Le bouton affiche un code au lieu d'une icône | Icône absente du thème de la version de GEO | Changer la classe icon_info_help dans extension.js |
| Le guide ne s'ouvre plus seul à la première visite | Normal : l'ouverture automatique n'a lieu qu'une fois par navigateur | Supprimer la clé geo-cadastre-guide-seen du stockage local pour la revoir |
| Une modification de texte n'apparaît pas | Ancien bundle en cache | Reconstruire le ZIP, réimporter, republier, recharger avec Ctrl + F5 |
Une erreur de dépendance Angular arrête toute l'application, pas seulement le module : tester un nouveau module sur une application de test avant de l'ajouter à une application de production.
Limites connues¶
- Le cas « sans GEO API v2 » n'est pas testé sur serveur.
- Validé sur une seule configuration : GEO 4.5.0, application GEO-Cadastre.
- La fiche annotée est une reproduction statique. Si l'éditeur modifie les colonnes de la
fiche parcelle, mettre à jour
SHEETdanscontent.js. - Le guide n'explique pas l'application elle-même : il ne montre pas où cliquer. C'est l'objet de la suite prévue.
- Pas de traduction : textes en français uniquement.
- Le décodeur ne vérifie pas qu'une référence existe : il contrôle sa forme, sans interroger de données. Les sections numériques d'Alsace-Moselle ne sont reconnues qu'en forme complète (14 caractères).
Suite prévue¶
Visites guidées (Shepherd.js), dans ce même module, dans une prochaine version : depuis le chapitre 7, un bouton « Montrez-moi dans l'application » fermerait le guide et lancerait une visite pas à pas (chercher une parcelle par référence, chercher par propriétaire, lire un résultat, interroger la carte).
- Les visites s'accrocheront à l'interface de GEO-Cadastre, que ce module ne maîtrise pas : chaque étape devra se replier sur un affichage centré si son élément cible est introuvable.
- L'intérieur de la fiche parcelle (une page du module cadastre dans une iframe) restera hors de portée : c'est le rôle de la fiche annotée.
- Préalable : relever dans l'inspecteur les sélecteurs des panneaux de GEO-Cadastre.
Journal des nouveautés¶
CHANGELOG.md (Keep a Changelog, en français, pour les utilisateurs) est embarqué dans le module : le lien « v… · Nouveautés » de l'en-tête ouvre une
fenêtre qui le montre, par-dessus le guide. Les fichiers src/js/changelog.js, scripts/check-version.js et test/changelog.test.mjs sont communs aux
modules de la collectivité et maintenus dans son dépôt source (ne pas les modifier ici). npm test et npm run package vérifient que package.json, src/plugin.geoext.json et le premier
## [x.y.z] du journal portent la même version : les trois s'écrivent dans le même commit.
Historique¶
| Version | Date | Changement |
|---|---|---|
| 0.1.2 | 2026-11-04 | Documentation : aperçu animé en tête du README |
| 0.1.1 | 2026-11-04 | Documentation : installation depuis la version publiée, formulations propres au dépôt source retirées |
| 0.1.0 | 2026-11-04 | Première version publiée : neuf chapitres, décodeur, fiche annotée, lexique, annexes, liens, fenêtre « Nouveautés » |
Licence¶
- Code : GPL-3.0-or-later — © 2026 Vienne Condrieu Agglomération.
- Documentation (ce README,
CHANGELOG.md, captures) : CC-BY-4.0. - Composants tiers embarqués dans le bundle (aucune dépendance npm ; tables de référence de la DGFiP) : voir THIRD-PARTY-LICENSES.md.
- Marques : « GEO » et « Business Geografic » sont des marques de leurs titulaires ; ce module est indépendant et n'est ni édité ni approuvé par Business Geografic.
- Plugin propriétaire non inclus :
npm run publishutilise@bg/publish-js-extension(Business Geografic), qui n'est pas distribué avec ce dépôt. Il n'est pas nécessaire pournpm run buildninpm run package.
Les contributions se font sous la même licence, avec signature DCO : voir CONTRIBUTING.md.