Générer d'avance toute la pyramide jusqu'au natif, plafonner la carte au zoom 19 et reprendre les dalles refusées par la file pleine
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
32
docs/MAPS.md
32
docs/MAPS.md
@ -79,17 +79,22 @@ Découverte : `/tiles/{couche}.json` (TileJSON 3.0.0), `/tiles/wmts.xml`
|
||||
Le bouton **« Utiliser dans JOSM / QGIS »** de la carte affiche et copie ces
|
||||
URL pour la couche choisie.
|
||||
|
||||
## Stockage réduit de la pyramide
|
||||
## Pyramide complète générée d'avance
|
||||
|
||||
Pour une petite machine (Raspberry Pi 5), la pyramide n'écrit sur disque que
|
||||
les niveaux **pairs** en numérotation OSM standard, jusqu'à
|
||||
`LIDAR_TILE_CACHE_MAX_Z` (16), en AVIF. Les autres niveaux, dont le plus fin
|
||||
qui pèse à lui seul environ 75 % de la pyramide, sont rendus à la volée
|
||||
depuis les sous-tuiles, avec un cache mémoire (`LIDAR_TILE_MEMORY_CACHE_MB`,
|
||||
64 Mo), y compris en mode cache seule. L'interface ne demande que les niveaux
|
||||
pairs : à un zoom impair, elle réduit les tuiles du niveau supérieur (nettes).
|
||||
Mesuré sur 8 dalles : environ 24 Mo de pyramide avant, 1,2 Mo après.
|
||||
`LIDAR_TILE_EVEN_LEVELS=0` rétablit le stockage de tous les niveaux.
|
||||
Par défaut, **tous** les niveaux jusqu'au natif (19 en numérotation OSM
|
||||
standard = 0,2 m/px, servi en `18@2x` par l'interface) sont écrits sur
|
||||
disque en AVIF et générés d'avance par la maintenance de fond (sur une carte
|
||||
alimentée par l'amont : téléchargés depuis `LIDAR_MAPS_URL`). Aucun niveau
|
||||
n'est rendu à la volée : le rendu à la demande d'un Raspberry Pi (~170 ms par
|
||||
tuile, 3 à la fois) donnait 1,5 à 6 s par écran aux zooms 17–19. L'interface
|
||||
est plafonnée au zoom 19 (1 px écran = 1 px LiDAR) : jamais de tuile
|
||||
agrandie. Ordre de grandeur mesuré : ~110 000 tuiles @2x pour 3 240 dalles,
|
||||
dont 81 000 au niveau natif, ~5 Go.
|
||||
|
||||
Stockage réduit (disque compté) : `LIDAR_TILE_CACHE_MAX_Z` plus bas et/ou
|
||||
`LIDAR_TILE_EVEN_LEVELS=1` (niveaux pairs seuls ; l'interface réduit alors
|
||||
les tuiles du niveau supérieur aux zooms impairs, les autres niveaux sont
|
||||
rendus à la volée avec un cache mémoire `LIDAR_TILE_MEMORY_CACHE_MB`).
|
||||
|
||||
Une carte alimentée par un serveur de dalles amont (`LIDAR_SOURCE_URL`, cas
|
||||
du Pi) rapatrie et **garde localement** les sources de chaque dalle dès
|
||||
@ -261,8 +266,7 @@ environment:
|
||||
transparente avec `X-Tile-Pending: 1` et `Cache-Control: no-store` (le
|
||||
navigateur la redemande : dès que la maintenance l'a rendue, elle apparaît).
|
||||
Plus aucun rendu local sur le chemin des requêtes ; avec `LIDAR_MAPS_URL`,
|
||||
une tuile manquante (ex. zoom au-delà de `LIDAR_TILE_BACKGROUND_MAX_Z`)
|
||||
y est rapatriée — un téléchargement de quelques dizaines de Ko, mis en
|
||||
une tuile manquante (pas encore passée par la maintenance) y est rapatriée — un téléchargement de quelques dizaines de Ko, mis en
|
||||
cache — puis servie : la navigation couvre tous les zooms sans jamais
|
||||
calculer sur la petite machine.
|
||||
- **`LIDAR_TILE_BACKGROUND=1`** — un sondeur rescane les dalles à intervalle
|
||||
@ -277,12 +281,12 @@ environment:
|
||||
|
||||
| Variable | Défaut | Rôle |
|
||||
|---|---|---|
|
||||
| `LIDAR_TILE_BACKGROUND_MAX_Z` | `16` | niveau maximal entretenu en fond (le natif 17–19 reste au pré-chauffage manuel) |
|
||||
| `LIDAR_TILE_BACKGROUND_MAX_Z` | natif (`18` en @2x, `19` en 256 px) | niveau maximal entretenu en fond, numérotation des URL |
|
||||
| `LIDAR_TILE_BACKGROUND_SCALE` | `2` | tuiles entretenues : 2 = 512 px (celles de l'interface) |
|
||||
| `LIDAR_TILE_BACKGROUND_FMT` | `webp` | format des tuiles entretenues (celui de l'interface) |
|
||||
| `LIDAR_TILE_BACKGROUND_PAUSE` | `1.0` | pause (s) entre deux rendus — le levier de la discrétion |
|
||||
| `LIDAR_TILE_BACKGROUND_INTERVAL` | `120` | secondes entre deux scans des dalles |
|
||||
| `LIDAR_TILE_BACKGROUND_QUEUE_MAX` | `65536` | file d'attente bornée (au-delà : ignoré jusqu'au prochain scan) — une entrée ne coûte que quelques octets |
|
||||
| `LIDAR_TILE_BACKGROUND_QUEUE_MAX` | `65536` | file d'attente bornée — chaque dalle mémorise la première tuile refusée faute de place et reprend de là aux scans suivants, jusqu'à ce que toute sa pyramide soit passée |
|
||||
|
||||
Pilotage : `GET /api/map/background` (état, compteurs, file), `POST
|
||||
/api/map/background` (scan immédiat), `POST /api/map/warm` (pré-calcul manuel
|
||||
|
||||
Reference in New Issue
Block a user