Porter la génération de tuiles dans lidar-maps et retirer l'ancienne webapp

La carte à tuiles XYZ devient la seule interface : l'API de génération
(preview, generate, status, stop, file, cell), le job unique + file
persistante, la délégation LIDAR_GENERATION_URL et les garde-fous
(token, LIDAR_REGEN_CIDR) passent de webapp.py à mapserve.py ; l'interface
gagne les boutons + Zone / ⤒ Compléter / régénération à la dalle, les
options de run et la progression cadre par cadre. mapserve sert aussi
l'inventaire /api/tiles et les dalles en statique versionné : le worker
image complète remplace la webapp sur le 8973 du générateur, le Pi
n'exécute plus que lidar-maps. index.py se réduit aux registres partagés
+ vignettes/sous-tuiles/inventaire (l'UI HTML/JS et les mosaïques
d'overview partent avec export.py et les compose/scripts de la webapp).
This commit is contained in:
Antoine Jacquin
2026-09-23 23:21:05 +02:00
parent 81defa85c9
commit 0a2ccee958
31 changed files with 1774 additions and 8465 deletions

View File

@ -259,18 +259,18 @@ def main():
parser.add_argument(
"--rebuild-index",
action="store_true",
help="Régénérer uniquement la carte globale HTML des tuiles déjà traitées (sans retraiter)"
help="Régénérer uniquement le catalogue des tuiles traitées (vignettes, sous-tuiles, inventaire — sans retraiter)"
)
parser.add_argument(
"--no-index",
action="store_true",
help="Ne pas générer la carte globale à la fin du traitement"
help="Ne pas générer le catalogue (vignettes + inventaire) à la fin du traitement"
)
parser.add_argument(
"--incremental-index",
action="store_true",
help="Régénérer la carte après chaque tuile terminée (affichage en direct "
"dans la webapp, sans attendre la fin du run)"
help="Régénérer le catalogue après chaque tuile terminée (affichage en direct "
"sur la carte, sans attendre la fin du run)"
)
args = parser.parse_args()
@ -304,7 +304,7 @@ def main():
# Kill orphan PDAL processes on interrupt or termination. Le motif est
# borné à NOTRE répertoire temporaire (pdal pipeline <output>/temp/…) : un
# pkill global massacrerient les PDAL des autres runs de la machine (ex.
# job webapp concurrent). Pas de hook atexit : une sortie normale n'a
# job de génération concurrent). Pas de hook atexit : une sortie normale n'a
# aucune raison de tuer quoi que ce soit.
global _pdal_kill_pattern
_pdal_kill_pattern = f"pdal pipeline {args.output}/temp/"
@ -314,14 +314,14 @@ def main():
log_gpu_status()
try:
# Mode --rebuild-index : régénère uniquement la carte globale, sans retraiter
# Mode --rebuild-index : régénère uniquement le catalogue, sans retraiter
if args.rebuild_index:
from .index import build_index
index_path = build_index(args.output, args.format)
if index_path:
logger.info(f"Carte globale générée : {index_path}")
logger.info(f"Catalogue généré : {index_path}")
else:
logger.warning("Aucune tuile traitée trouvée — carte globale non générée")
logger.warning("Aucune tuile traitée trouvée — catalogue non généré")
return
# Nouveau run : remise à zéro du journal d'événements (file de