管理者としてのキャッシュ管理

サーバーでのキャッシュが有効になっているレイヤーでは、ユーザーがマップ上でパンやズームを行うと、Lizmapはそのキャッシュを保持します。パフォーマンスを向上させるために、Lizmap Web Clientは、サーバー上にタイルキャッシュを自動的に生成することもできます。

In some cases, it is desirable to remove the server cache, for example, when the style has changed and the tiles need to be updated. For this, some solutions are possible:

Lizmapリポジトリによるすべてのキャッシュの削除

管理画面の 地図の管理 ページでは、各リポジトリに対して、 キャッシュを空にする ボタンをクリックすることで、すべてのプロジェクトリポジトリのすべてのレイヤーのキャッシュを削除することができます。

Lizmapプロジェクトごと、レイヤーごとにキャッシュを削除する。

管理者が接続してLizmapの地図を参照すると、サーバーキャッシュが設定されている各レイヤーの名前の右側に**小さな赤い十字**が表示されます。この十字をクリックすると、確認の後、QGISプロジェクト内のこのレイヤーのサーバーキャッシュのみを削除することができます。

ログインした管理者のみがこの赤い十字を見ることができ、キャッシュを削除する権限を持っています。

Use the console command for a whole project or layer

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

# Command help
# php lizmap/console.php wmts:cache:clean  repository project [layer]

# Clean the cache for a given project
php lizmap/console.php wmts:cache:clean montpellier montpellier

# Clean the cache for a given layer
php lizmap/console.php wmts:cache:clean montpellier montpellier bus

キャッシュシステムの設定

:menuselection:`管理者 -> Lizmapの設定 -> キャッシュ`から、使用するキャッシュシステムを設定できます。異なる種類のキャッシュを選択できます。

  • ファイル

  • Sqlite

  • Redis (Redisサーバーが必要です)

事前にキャッシュを作成する

サーバーサイドキャッシュがオンに設定されたQGISプロジェクトの任意のレイヤーのタイルを事前に生成することができます。そのためには、Lizmapがインストールされているサーバにフルアクセスし、ターミナルを使ってそこに接続する必要があります。また、LizmapリポジトリのIDと、プロジェクトのコード名(拡張子を除いたQGISプロジェクトのファイル名)を知っておく必要があります。

この例では、Lizmap Web Clientに同梱されているデモプロジェクト Montpellier のタイルキャッシュを管理するためのコマンドを紹介します。また、Lizmapアプリケーションは、 :file:`/var/www/lizmap-web-client/`のフォルダにインストールされているものとします。

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

LizmapはキャッシュされたレイヤーをWMTS(Web Map Tiled Service)で公開していることを知っておかなければなりません。以下のコンセプトは、Lizmapタイルキャッシュ作成のオプションとして使用されます。

  • TileMatrixSet - Lizmapでは、これは投影コードを表し、例えば`EPSG:3857`(Pseudo mercator)のようになります。

  • TileMatrixMin - これは最小のズームレベルです。

  • TileMatrixMax - これは最大のズームレベルです。

警告

ズームレベルとは、地図の縮尺では**なく**、ズームレベルのことです。Lizmapプラグインでは、プロジェクト公開者が`100000, 50000, 25000, 10000`のような公開プロジェクトの縮尺を設定することができます。ズームレベルのIDは、いくつかのCRSとLizmapプロジェクトの設定方法に依存します。地図を拡大するときに、WebブラウザのJavascriptコンソールで lizMap.map.getZoom() と入力すると、スケールIDを知ることができます。

まず最初に、あるプロジェクトのキャッシュ機能と、特定のレイヤーの詳細を知っている**必要**があります。

# Command help
# php lizmap/console.php 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/console.php wmts:capabilities montpellier montpellier

# Get precisions about a specific layer
php lizmap/console.php 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

この例では、バスのレイヤーが3つの異なるTileMatrixSetを持っていることがわかります。これは、Lizmapのこのプロジェクトで利用可能な3つの異なる空間座標系に対応しています( プロパティ ‣ QGIS Server`で設定)。

注釈

レイヤー名にスペースがある場合は、 `""`を使用する必要があります。

特定のレイヤーのキャッシュを生成する**前**に、キャッシュの設定を生成することが重要です。キャッシュの設定は次のコマンドで使用されます。キャッシュの設定が存在しない場合、次のコマンドは失敗する可能性があります。

レイヤーについての知識があれば、そのレイヤーのキャッシュを生成することができます。

# Command help
# php lizmap/console.php wmts:cache:seed [-v] [-f] repository project layer TileMatrixSet TileMatrixMin TileMatrixMax

# Example
php lizmap/console.php wmts:cache:seed -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

キャッシュの生成後は、キャッシュの権限を更新します。

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