Files
lidar_rendu/docker-compose.maps.yml
Antoine Jacquin 434b7f12fd Mettre à jour la pyramide pendant le rendu et réduire son stockage
Le pipeline régénère l'inventaire après chaque dalle par défaut (tous
lanceurs, sauf --no-index), avec une passe différée quand l'anti-rebond
ignore une dalle. La carte surveille l'inventaire toutes les 10 s et place
les tuiles des dalles modifiées en tête de file de maintenance : la
pyramide suit le rendu au lieu d'attendre la fin du lot.

Stockage réduit pour le Raspberry Pi : seuls les niveaux standard pairs
jusqu'à z16 sont écrits sur disque, en AVIF ; les autres, dont le niveau
le plus fin (~75 % de la pyramide), sont rendus à la volée avec un cache
mémoire, y compris en mode cache seule. L'interface ne demande que les
niveaux pairs et réduit ceux du niveau supérieur aux zooms impairs.
Mesuré sur 8 dalles : ~24 Mo de pyramide avant, 1,2 Mo après.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 02:31:11 +02:00

61 lines
2.9 KiB
YAML

# Carte à tuiles XYZ (style OpenStreetMap / Google Maps) — cf. docs/MAPS.md.
#
# Sert la pyramide de tuiles + l'interface de consultation + la génération
# (déléguée à la machine de traitement via LIDAR_GENERATION_URL sur une
# machine légère, locale sur l'image complète). Même dossier output/ que le
# pipeline ; les tuiles sont rendues à la demande et mises en cache dans
# output/index_xyz/.
#
# docker compose -f docker-compose.maps.yml up -d --build
# docker compose -f docker-compose.maps.yml logs -f maps
# docker compose -f docker-compose.maps.yml down
services:
maps:
build:
context: .
dockerfile: Dockerfile.maps
image: lidar-maps
container_name: lidar-maps
init: true
user: "1000:1000"
ports:
- "8975:8975"
volumes:
# Lecture des dalles + écriture du cache de tuiles (output/index_xyz/)
- ./output:/data/output
environment:
- TZ=Europe/Paris
- LIDAR_OUTPUT_DIR=/data/output
# Générateur de tuiles (worker, cf. docker-compose.worker.yml) : la
# génération lancée depuis la carte y est déléguée. Sans cette
# variable ET sans pipeline local, les boutons de génération sont
# masqués (image légère de consultation seule).
# - LIDAR_GENERATION_URL=http://192.168.1.50:8973
# Jeton si le worker exige LIDAR_API_TOKEN.
# - LIDAR_REMOTE_TOKEN=un-secret-à-partager
# Réseau autorisé à lancer les générations (défaut : localhost +
# plages privées RFC1918 ; liste de CIDR, vide = tout autoriser).
# - LIDAR_REGEN_CIDR=192.168.1.0/24
# Serveur de DALLES amont (mapserve du worker) : sans données locales,
# l'inventaire vient de son /api/tiles et les images sont rapatriées à
# la demande dans ./output — de quoi servir tout un catalogue distant.
# - LIDAR_SOURCE_URL=http://192.168.1.50:8973
# Serveur de TUILES amont (autre instance lidar-maps) pour une carte
# déportée (Raspberry Pi) : une tuile absente localement y est rapatriée.
# - LIDAR_MAPS_URL=http://192.168.1.50:8975
# Mention d'attribution servie dans TileJSON, WMTS, JOSM et la carte.
# - LIDAR_ATTRIBUTION=LiDAR HD &copy; IGN — Licence Ouverte 2.0
# Charge maximale : rendus et téléchargements simultanés, mémoire du
# cache d'images sources. Défauts taillés pour une petite machine ;
# à relever sur un serveur confortable.
# - LIDAR_TILE_WORKERS=2
# - LIDAR_TILE_FETCH_WORKERS=2
# - LIDAR_TILE_SOURCE_CACHE_MB=192
# Stockage réduit (défauts) : seuls les niveaux standard pairs jusqu'à
# z16 sont écrits sur disque (AVIF) ; les autres sont rendus à la volée
# avec un cache mémoire. LIDAR_TILE_EVEN_LEVELS=0 stocke tous les niveaux.
# - LIDAR_TILE_CACHE_MAX_Z=16
# - LIDAR_TILE_EVEN_LEVELS=1
# - LIDAR_TILE_MEMORY_CACHE_MB=64
restart: unless-stopped