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>
61 lines
2.9 KiB
YAML
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 © 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
|