Gestion du cache en tant qu’administrateur

Lizmap Web Client permet de générer automatique un cache des tuiles par le serveur au fur et à mesure que les utilisateurs accèdent aux cartes. Dans certains cas, il est souhaitable de pouvoir supprimer le cache serveur, par exemple lorsque des modifications de style ont été faites pour certaines couches spatialies publiées par Lizmap Web Client. Pour cela, 2 solutions sont possibles :

Suppression de tout le cache par répertoire Lizmap

Dans l’interface d’administration, le menu Configuration Lizmap montre la liste des répertoires Lizmap configurés. Pour chacun des répertoire, l’administrateur peut supprimer le cache pour toutes les couches de tous les projets du répertoire en cliquant sur le bouton Vider le cache.

Supprimer le cache couche par couche pour chaque projet Lizmap

Lorsque l’administrateur est connecté et qu’il consulte une carte Lizmap, une petite croix rouge est affichée à droite du nom de chaque couche qui est configurée pour être mise en cache serveur. Un clic sur cette croix permet, après validation, de supprimer le cache serveur uniquement pour cette couche de ce projet QGIS.

Seul un administrateur connecté peut voir ces croix rouges et a le droit de vider le cache.

Générer le cache de tuiles

Vous pouvez prégénérer les tuiles pour n’importe quelles couches d’un projet QGIS configurer pour être mis en cache côté serveur. Pour pouvoir le faire, vous devez avoir un accès complet au serveur sur lequel Lizmap est installé, et utiliser un terminal pour vous y connecter. Vous devez aussi connaître les identifiants des répertoires Lizmap, et le nom d’identification du projet ( le nom du fichier du projet QGIS sans l’extension ).

Dans cet exemple, nous allons voir les commandes pour gérer les tuiles mis en cache pour le projet Montpellier de démonstration, fournis avec Lizmap Web Client. Nous considérerons aussi que l’application Lizmap est installé dans le dossier /var/www/lizmap-web-client/ .

# Go to the application folder
cd /var/www/lizmap-web-client/

Il est important de savoir que Lizmap publie les couches mises en cache en WMTS (Web Map Tiled Service). Les concepts suivants sont utilisés comme options du générateur de cache de tuile de Lizmap :

  • TileMatrixSet - Dans Lizmap, il est égale au code du système de coordonnées de référence, par exemple EPSG:3857 ( Pseudo mercator )

  • TileMatrixMin - C’est le niveau de zoom minimum. Ce n’est pas une échelle de carte, mais un ID du niveau de zoom. Dans le plugin Lizmap, l’éditeur du projet peut configurer les échelles du projet publié. Par exemple la liste suivante : 100000, 50000, 25000, 10000. L’ID du niveau de zoom dépend de la projection et de votre configuration du projet Lizmap. Vous pouvez connaitre l’ID d’échelle en tapant lizMap.map.getZoom() dans la console JavaScript de votre navigateur à chaque zoom de la carte.

  • TileMatrixMax - Représente le niveau de zoom maximum

Tout d’abord, vous pouvez obtenir les possibilités de cache d’un projet, et quelques détails sur une couche spécifique.

# Command help
# php lizmap/scripts/script.php lizmap~wmts:capabilities [-v] repository project [layer] [TileMatrixSet]

# Get the capabilities for a given project published with Lizmap
# and generate the cache about these capabilities.
php lizmap/scripts/script.php lizmap~wmts:capabilities montpellier montpellier

# Get precisions about a specific layer
php lizmap/scripts/script.php lizmap~wmts:capabilities -v montpellier montpellier bus EPSG:3857
# which will return
For "bus" and "EPSG:4326" from TileMatrix 13 to 15
For "bus" and "EPSG:900913" from TileMatrix 14 to 16
For "bus" and "EPSG:3857" from TileMatrix 14 to 16

Dans cette exemple, vous pouvez voir que la couche “bus” a 3 différents TileMatrixSet, correspondant à 3 différents systèmes de coordonnées disponibles pour ce projet dans la publication Lizmap (configuré dans Propriétés du projet, onglet QGIS Server.

Il est nécessaire de générer le cache du capabilities avant de générer le cache pour une couche. Le cache du capabilities est utilisé dans la commande suivante. La prochaine commande ne fonctionne pas si le cache du capabilities n’est pas présent.

Une fois que vous avez une bonne connaissance d’une couche, vous pouvez générer le cache pour celle-ci:

# Command help
# php lizmap/scripts/script.php lizmap~wmts:seeding [-v] [-f] repository project layer TileMatrixSet TileMatrixMin TileMatrixMax

# Example
php lizmap/scripts/script.php lizmap~wmts:seeding -v -f montpellier montpellier bus EPSG:3857 12 14
# Which will return:
81 tiles to generate for "bus" "EPSG:3857" "14"
81 tiles to generate for "bus" "EPSG:3857" between "12" and "14"
Start generation
================
Progression: 6%, 5 tiles generated on 81 tiles
Progression: 12%, 10 tiles generated on 81 tiles
Progression: 18%, 15 tiles generated on 81 tiles
Progression: 24%, 20 tiles generated on 81 tiles
Progression: 30%, 25 tiles generated on 81 tiles
Progression: 37%, 30 tiles generated on 81 tiles
Progression: 43%, 35 tiles generated on 81 tiles
Progression: 49%, 40 tiles generated on 81 tiles
Progression: 55%, 45 tiles generated on 81 tiles
Progression: 61%, 50 tiles generated on 81 tiles
Progression: 67%, 55 tiles generated on 81 tiles
Progression: 74%, 60 tiles generated on 81 tiles
Progression: 80%, 65 tiles generated on 81 tiles
Progression: 86%, 70 tiles generated on 81 tiles
Progression: 92%, 75 tiles generated on 81 tiles
Progression: 98%, 80 tiles generated on 81 tiles
================
End generation

Après la génération du cache, mettez à jour les droits dessus :

lizmap/install/set_rights.sh www-data www-data