---
suivi: 1560
date: 2026-09-15
sujet: Synthèse dossier — carte à droite, détention, tuiles
chantier: foncier
type: feature
statut: poussé
hash: 20295550
fichiers:
  - app/Support/Foncier/FoncierReferentiels.php
  - app/Http/Controllers/Foncier/DossierFoncierController.php
  - resources/js/Components/Foncier/ParcelleMap.vue
  - resources/js/Components/Foncier/DossierSyntheseTab.vue
  - tests/Unit/DossierFoncier1560SourceTest.php
  - database/data/journal_mises_a_jour_post_2026_06_12.php
  - public/build/
  - docs/suivi/SUIVI_1560_synthese_carte_droite_detention.md
---

# SUIVI #1560 — Synthèse : carte à droite, détention, tuiles

## PROMPT ENVOYÉ

Trois ajustements après #1557 en prod : carte d’emprise à droite (même
hauteur que la liste parcelles), badge / trait / légende pour les
parcelles détenues (societe_detentrice_id, date d’acte ou « Acheté »
sans date #1532), invalidateSize contre les tuiles IGN grises
(DF-2026-0002). Patron 860/1280, carte sous la liste < 860. Ne pas
toucher #1558 ni les autres onglets. Rebase avant Vite. Push HECTAREG main.

## FICHES LUES

- **#1557 LEÇON** — emprise via périmètre vivant ; ST_Area 4326 ≠ m² ;
  synthèse hors Show.vue. Impact : layout dans DossierSyntheseTab,
  surfaces cadastrales conservées, Show.vue non modifié.
- **#1558 LEÇON** — route dossier JSON, une parcelle, service IGN
  existant. Impact : encadré + bouton repris tels quels sous la carte.
- **#1530 LEÇON** — détention = societe_detentrice_id, pas le compteur
  propriétaires. Impact : ligne propriétaire = société détentrice.
- **#1532 LEÇON** — détention saisie à la main, acte optionnel. Impact :
  badge « Acheté » sans date si societe_detentrice_id sans acte.
- **#1463 / #1271 / #1444** — 860/1280, jamais overflow-x-hidden.

## SYNTHÈSE

Deux colonnes égales ≥ 860 px : liste à gauche, emprise à droite
(stretch). < 860 : carte sous la liste. Sous-titre emprise = « N/M
tracées ». Badge « Acheté le JJ/MM/AAAA » (acte le plus récent via
acte_parcelle) ou « Acheté ». Total « N parcelles · M achetée(s) ».
Carte : fill inchangé (état foncier), trait épais sombre + mention
ACHETÉ, entrée de légende. ParcelleMap : ResizeObserver +
invalidateSize (tuiles grises).

## DÉPLOIEMENT-TEST

```
git pull origin main
php artisan optimize:clear
php artisan view:clear
php artisan journal:sync
```

Pas de migrate. Pas de route:clear.

Cas : DF-2026-0003 carte à droite ; parcelle avec acte / sans acte /
non détenue ; DF-2026-0002 plus de tuiles grises ; resize ; 1280 / 1100
/ 800 ; bouton contours #1558.

## LEÇON

La détention est une seconde dimension sur la carte : ne pas lui
prendre une couleur de remplissage (13 états fonciers). Leaflet
initialisé dans une colonne encore à largeur 0 produit des tuiles
grises : ResizeObserver + invalidateSize après que le conteneur a une
taille, pas seulement à onMounted. Show.vue reste hors de ce lot
(zone commune, collisions).
