Gestão da cache como administrador

Para uma camada com a opção cache do servidor ativada, o Lizmap manterá a cache quando o utilizador mover o mapa ou aplicar zoom ao mesmo. Para obter melhor desempenho, o Lizmap Web Client também pode gerar automaticamente o cache de mosaicos no servidor. Em alguns casos, é desejável remover a cache do servidor, por exemplo, quando houver alteração de estilo das camadas e os blocos necessitem de ser atualizados. Para isso, existem duas soluções possíveis:

Remover totalmente a cache de um repositório Lizmap

Na interface de administração, menu Configuração Lizmap, Repositório, repositório específico. Para cada repositório, o administrador pode excluir a cache de todas as camadas de todos os projetos do repositório, através do botão Esvaziar a cache.

Remover a cache, camada por camada, para cada projeto Lizmap

Quando o administrador está ligado e consulta um mapa do Lizmap, aparece uma pequena cruz vermelha à direita do nome de cada camada que está configurada para ser armazenada em cache no servidor. Clicar na cruz permite, após confirmação, excluir a cache do servidor apenas para essa camada do projeto QGIS.

Apenas o administrador, quando ligado, consegue visualizar essas cruzes vermelhas tendo permissão para limpar a cache.

Gerar mosaicos

É possível pré-gerar os mosaicos para qualquer camada de um projeto QGIS configurado com a opção cache do lado do servidor. É necessário ter acesso total ao servidor em que o Lizmap se encontra instalado e utilizar um programa de terminal para estabelecer ligação ao mesmo. É necessário também conhecer os IDs dos repositórios Lizmap bem como o código do projeto (o nome do ficheiro do projeto QGIS sem a extensão).

Neste exemplo, serão apresentados comandos para gestão da cache de mosaicos do projeto de demonstração Montpellier, fornecido com o Lizmap Web Client. Assume-se também que a aplicação Lizmap se encontra instalada na pasta /var/www/lizmap-web-client/.

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

É importante saber que o Lizmap publica as camadas em cache no WMTS (Web Map Tiled Service). Os seguintes conceitos são utilizados como opções do gerador de cache de mosaicos do Lizmap:

  • TileMatrixSet - No Lizmap, representa o código de projeção, por exemplo EPSG:3857 (Pseudo mercator).

  • TileMatrixMin - É o nível mínimo de zoom. Não se trata de uma escala de mapa, mas mas sim de uma identificação do nível de zoom. Através do plugin do Lizmap, é possível configurar escalas para a publicação do projeto. Por exemplo, a lista: 100000, 50000, 25000, 10000. O ID do nível de zoom depende de alguns CRS e de como se encontra configurado o projeto Lizmap. É possível ter uma ideia do ID do nível de zoom digitando lizMap.map.getZoom() na consola de Javascript enquanto se efetua zoom no mapa.

  • TileMatrixMax - É o nível máximo de zoom.

Em primeiro lugar deverão ser verificados os recursos de cache relativos a um projeto bem como alguns detalhes referentes a uma camada específica do mesmo.

# 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

Neste exemplo, é possível verificar que a camada Bus possui 3 diferentes TileMatrixSet, correspondendo aos 3 diferentes sistemas de coordenadas espaciais disponíveis para este projeto Lizmap (configurados em Propriedades do Projeto, separador QGIS Server).

É importante verificar os recursos de cache antes de gerar a cache para uma determinada camada. Os recursos de cache serão utilizados no próximo comando. O próximo comando poderá falhar caso os recursos de cache não se encontrem disponíveis.

Só após um bom nível de conhecimento de uma determinada camada, será possível gerar a cache adequada para a mesma:

# 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

Após a geração de mosaicos, é necessário atualizar os direitos sobre a cache:

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