Gestion du cache en tant qu’administrateur

Pour une couche avec le cache serveur activé, Lizmap conservera le cache lorsque l’utilisateur effectuera un déplacement et un zoom sur la carte. Pour avoir de meilleures performances, Lizmap Web Client peut également générer automatiquement le cache de tuiles sur le serveur.

Dans certains cas, il est souhaitable d’effacer le cache serveur, par exemple, quand le style a changé et que les tuiles nécessitent d’être mises à jour. Pour cela, deux solutions sont possibles :

Suppression de tout le cache par répertoire Lizmap

Dans l’interface d’administration, dans la page Gestion des cartes, pour chaque dossier, l’administrateur peut supprimer le cache de toutes les couches de tous les projets en cliquant sur le bouton Vider le cache.

Supprimer le cache couche par couche pour chaque projet Lizmap

Lorsque l’administrateur est connecté et consulte une carte Lizmap, une petite croix rouge s’affiche à droite du nom de chaque couche configurée avec le cache serveur. Cliquer sur la croix permet, après validation, de supprimer le cache serveur uniquement pour cette couche dans le projet QGIS.

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

Configuration du système de cache

Dans Administration -> Configuration -> Cache, vous pouvez configurer le système de cache utilisé. Vous pouvez choisir entre différents types de mise en cache :

  • Fichiers
  • Sqlite
  • Redis (Vous devez avoir un serveur Redis)

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 montrerons les commandes pour gérer le cache des tuiles pour le projet de démonstration Montpellier, livré avec Lizmap Web Client. Nous supposons également que votre application Lizmap est installée 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, cela représente le code de projection, par exemple EPSG:3857 (Pseudo mercator).
  • TileMatrixMin - Il s’agit du niveau de zoom minimum.
  • TileMatrixMax - Représente le niveau de zoom maximum

Avertissement

Le niveau de zoom n’est pas une échelle de carte, mais le niveau de zoom. Dans l’extension Lizmap, l’éditeur du projet peut configurer des échelles pour le projet publié, par exemple la liste : “100000, 50000, 25000, 10000”. L’ID du niveau de zoom dépend du CRS et de la façon dont vous avez configuré votre projet Lizmap. Vous pouvez avoir une idée de l’ID d’échelle en tapant lizMap.map.getZoom() dans la console Javascript de votre navigateur Web lorsque vous zoomez sur votre carte.

Tout d’abord, vous devez 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 cet exemple, vous voyez que la couche de bus a 3 TileMatrixSet différents, correspondant aux 3 systèmes de coordonnées spatiales différents disponibles pour ce projet dans Lizmap (configurés dans Propriétés du Projet ‣ QGIS Serveur).

Note

Si le nom de votre couche comporte des espaces, vous devez utiliser «  ».

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