ma_parcelle
Cliquez une parcelle : la carte la carotte à travers six couches de données publiques, sans compte ni serveur.
- Stack
- React 19 · Vite · MapLibre
- Année
- 2026
Anatomie
7 pièces · une seule les compteChoisir une parcelle
Un clic lit l’identifiant de la parcelle dans la carte déjà affichée, sans réseau.
PciLayer()10
export function PciLayer() {11
const { line } = OVERLAY_COLORS[useColorScheme()]12
const select = useSelectionStore((state) => state.select)Retenir une seule parcelle
Une seule parcelle ouverte à la fois, repérée par son code cadastral de 14 caractères.
SelectionState3
interface SelectionState {5
idu: string | null10
reframe: booleanCharger la parcelle
Demande au cadastre de l’IGN la forme et la surface de la parcelle, en une requête.
loadParcel()67
export async function loadParcel(fetch: Fetch, idu: string, { signal }: LoadOptions = {}): Promise<Parcel> {68
const parts = parseIdu(idu)69
if (!parts) throw new ParcelError('invalid-idu', idu)Partir de la parcelle
Chaque bloc part de la parcelle déjà en cache ; si elle manque, tous échouent ensemble.
parcelBlockQuery()11
export const parcelBlockQuery = <Model>(queryClient: QueryClient, block: BlockId, idu: string, load: BlockLoader<Model>) =>12
queryOptions({13
queryKey: [block, idu],Interroger chaque source
Le navigateur appelle les API publiques sans serveur, 15 s au plus par réponse.
fetchBody()61
async function fetchBody<T>(62
fetch: Fetch,63
url: string,Empiler les six blocs
Cadastre, urbanisme, risques, ventes, bâtiment et DPE : chacun charge et échoue seul.
BLOCKS18
export const BLOCKS = [19
{ id: 'cadastre', Section: CadastreSection },20
{ id: 'planning', Section: PlanningSection },Composer la synthèse
Résume les blocs reçus, écarte ceux en panne et signale ceux qui chargent encore.
assembleSummary()63
export function assembleSummary(blocks: readonly BlockState[]): Summary {64
return {65
facts: blocks.flatMap((block) => (block.status === 'success' ? block.data : [])),
Maintenez le clic sur la colonne pour forer les strates · cliquez le plateau pour relancer le sondageGardez le doigt sur la colonne pour forer les strates · touchez le plateau pour relancer le sondage
Nomenclature
- 01 Plateau parcellaire Le plan cadastral gravé. On choisit la parcelle en la touchant : l’IDU est lu dans la tuile déjà affichée, sans appel réseau. Code : src/map/layers/PciLayer.tsx, lignes 9–45 ↗
- 02 Tubage de tête Un seul tubage pour un seul trou : la sélection retient une parcelle à la fois. Code : src/stores/selection-store.ts, lignes 3–20 ↗
- 03 Croûte cadastrale La première couche à percer : la parcelle désignée par son IDU, d’où partent toutes les autres. Code : src/api/cadastre.ts, lignes 63–74 ↗
- 04 Carottier Il emporte la parcelle sortie du cache du Cadastre jusque dans chaque strate. Si la croûte casse, il ne remonte rien. Code : src/queries/block.ts, lignes 6–15 ↗
- 05 Couronne diamantée Elle mord chaque source : un GET avec un délai de 15 s et une erreur typée (HTTP, délai, réseau, JSON invalide). Code : src/api/fetch-json.ts, lignes 61–91 ↗
- 06 Viroles des strates Six viroles boulonnées, une par bloc, dans l’ordre de la fiche. Chacune charge et échoue seule. Code : src/components/report/blocks.ts, lignes 14–25 ↗
- 07 Log de sondage La synthèse : elle s’écrit avec ce qui est remonté. Une strate perdue ou encore en cours laisse sa ligne vierge, et le témoin reste allumé tant qu’une strate charge. Code : src/lib/summary/summary.ts, lignes 59–68 ↗