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

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

スタイルが変更され、タイルを更新する必要がある場合など、サーバーキャッシュを削除することが望ましい場合があります。この場合、2つの解決策が考えられます。

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

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

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

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

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

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

: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/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

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

注釈

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

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

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

# 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

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

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