Documenter le panneau unique de la carte

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Antoine Jacquin
2026-09-27 18:34:28 +02:00
parent 375d53c0b1
commit 56c9fa0ccd
2 changed files with 54 additions and 24 deletions

View File

@ -16,16 +16,40 @@ docker compose -f docker-compose.maps.yml logs -f maps
./run.sh --serve-maps # équivalent en conteneur au premier plan
```
## Interface
Un **panneau unique à onglets** (`web/map.{html,css,js}`) regroupe tous les
réglages, à la place de l'ancienne pile de blocs empilés : **Affichage**
(couche principale, mode relief/précision, fond de carte), **Export PDF**,
**Génération** (masqué si le générateur est indisponible ou non autorisé
pour ce navigateur) et **Partager**. Sur ordinateur, le panneau occupe une
colonne fixe, repliable en bande d'icônes (**‹**, toujours utilisable : un
clic sur un onglet redéplie le panneau). Sous 720 px de large, il devient un
**volet en bas d'écran** à trois hauteurs — fermé, mi-hauteur, plein — que
l'on change en glissant la poignée, en la touchant simplement (un cran), ou
en retouchant l'onglet déjà actif.
Un clic sur la carte ouvre une **bulle** sur la dalle LiDAR HD sous le
curseur (date d'acquisition, densité de points sol) ; son bouton **Détails**
bascule une **fiche complète** dans le panneau (emprise, IGN, recalage des
passes) — **← Retour** rouvre l'onglet précédent. Raccourcis clavier :
**1–4** (onglets du panneau, sans effet si l'onglet est masqué), **P**
(mode d'affichage suivant), **Échap** (ferme la bulle, puis la fiche, puis
replie le panneau). Deux thèmes clair/sombre (bouton ◐/☀/☾, `auto` par
défaut = suit le système) ; réglages et état du panneau retenus dans
`localStorage` (`lidarMapView_v2`, `lidar-print`, `lidar-panel`,
`lidar-theme` — silencieusement ignorés en navigation privée).
## Générer des tuiles depuis la carte
- **+ Zone** (barre d'outils) — dessiner un rectangle : les dalles LHD de 1 km
qui l'intersectent sont téléchargées depuis la géoplateforme IGN puis
- **+ Zone** (onglet Génération) — dessiner un rectangle : les dalles LHD de
1 km qui l'intersectent sont téléchargées depuis la géoplateforme IGN puis
traitées (0,2 m, options ci-dessous) ; les zones et clics successifs
s'additionnent ;
- **⤒ Compléter** — toutes les dalles déjà présentes dans `input/` qui
manquent au moins une des couches demandées ;
- **↻ Générer cette dalle** (fiche d'infos au clic) — une dalle précise,
même sans données existantes.
- **↻ Générer/Régénérer cette dalle** (bouton de la fiche de dalle, bulle →
Détails) — une dalle précise, même sans données existantes.
Options du run : couches visées (défaut : les couches du panneau) et
régénération forcée. La classification du sol (IGN, sol seul) et le raccord
@ -106,15 +130,18 @@ source manquée pendant qu'il était éteint est reprise au scan suivant.
## Fiche de dalle et rose des vents
Un clic sur la carte sélectionne la dalle LiDAR HD sous le curseur (cadre
jaune en pointillés), qu'elle soit générée ou non. La fiche s'affiche tout de
suite avec le nom, l'emprise Lambert 93, puis, si la dalle est rendue, la
résolution, la date de génération et le recalage vertical des passes
(faisceaux, décalages, correction des lignes). Les informations IGN arrivent
à part (`GET /api/map/ign?col&row`, catalogue STAC mis en cache dans
`output/ign_meta/`) : date et heure du scan LiDAR, capteurs, mission,
opérateur, date d'édition, procédé de classement, nombre de points et lien de
téléchargement du nuage `.copc.laz` sur la géoplateforme. Un catalogue lent
ou injoignable n'empêche jamais la sélection.
jaune en pointillés) et ouvre une **bulle** — nom, date d'acquisition,
densité de points sol — qu'elle soit générée ou non. Son bouton **Détails**
bascule une fiche complète dans le panneau : nom, emprise Lambert 93, puis,
si la dalle est rendue, la résolution, la date de génération et le recalage
vertical des passes (faisceaux, décalages, correction des lignes). Les
informations IGN arrivent à part (`GET /api/map/ign?col&row`, catalogue STAC
mis en cache dans `output/ign_meta/`) : date et heure du scan LiDAR,
capteurs, mission, opérateur, date d'édition, procédé de classement, nombre
de points et lien de téléchargement du nuage `.copc.laz` sur la
géoplateforme. Un catalogue lent ou injoignable n'empêche jamais la
sélection. **← Retour** (ou Échap) ferme la fiche et rouvre l'onglet
précédent.
Quand le relief orienté est affiché, une rose des vents donne la couleur de
chaque orientation de pente (même formule CIELAB que le rendu) ; la clarté
@ -169,17 +196,19 @@ principale, mode validé, opacités bornées à 0–1. Un fichier de l'ancienne
## Export PDF (planche d'impression terrain)
Le bouton **⎙** ouvre une carte de réglages (format A4/A3, paysage/portrait,
échelle 1:1 000 à 1:10 000, titre optionnel) et affiche un **cadre jaune en
pointillés** qui montre la zone qui sera imprimée. Le cadre est **posé sur le
L'onglet **Export PDF** affiche les réglages (format A4/A3, paysage/portrait,
échelle 1:1 000 à 1:10 000, titre optionnel) et, tant qu'il est ouvert, un
**cadre jaune en pointillés** qui montre la zone qui sera imprimée (il
disparaît en changeant d'onglet). Le cadre est **posé sur le
terrain** : il se place au centre de la vue à l'ouverture (ou garde sa position
précédente si elle est encore visible), la carte zoome pour le montrer en
entier au-dessus des panneaux, puis on navigue librement sans qu'il bouge. On le
entier au-dessus du panneau, puis on navigue librement sans qu'il bouge. On le
déplace en faisant glisser sa **poignée ✥** (souris ou doigt) ; au relâchement,
la géométrie Lambert 93 exacte est recalculée (`GET /api/export/frame`).
« ⌖ Centrer ici » le ramène au centre de la vue, « ⤢ Voir le cadre » zoome
dessus ; changer de format, d'orientation ou d'échelle recadre la vue. Les
réglages et la position du cadre sont mémorisés dans `localStorage` du
la géométrie Lambert 93 exacte est recalculée (`GET /api/export/frame`) — un
relâchement suivi d'un clic immédiat n'ouvre pas la bulle de dalle (garde de
300 ms). « ⌖ Centrer ici » le ramène au centre de la vue, « ⤢ Voir le cadre »
zoome dessus ; changer de format, d'orientation ou d'échelle recadre la vue.
Les réglages et la position du cadre sont mémorisés dans `localStorage` du
navigateur. **Exporter le PDF** télécharge la planche (`GET
/api/export/pdf`), nommée `relief_{x_km}_{y_km}_1-{échelle}.pdf` (centre
Lambert 93 en km, à trois décimales).
@ -420,5 +449,5 @@ consultable même worker éteint.
- `lidar_pipeline/tiles.py` — grille, reprojection, cache, pré-chauffage.
- `lidar_pipeline/mapserve.py` — routes tuiles/TileJSON/WMTS/JOSM et API carte.
- `lidar_pipeline/mapui.py` — interface (Leaflet `L.tileLayer`, LOD natif).
- `lidar_pipeline/web/map.{html,css,js}` — interface (panneau à onglets, Leaflet `L.tileLayer`, LOD natif), relue par `lidar_pipeline/mapui.py`.
- `Dockerfile.maps`, `docker-compose.maps.yml`, `./run.sh --serve-maps`.