属性テーブル
定義
Lizmap はメインマップに空間データを表示するように設計されており、地物の"地物情報" を通じてオブジェクト データを表示するようユーザーに提案できます (「ユーザーがマップ上をクリックするたびにオブジェクトデータを含む小さな地物情報が表示されます」)。 地物情報
場合によっては、これは十分ではなく、マップエディタとして、属性テーブルを開くことによってQGISで行うことができるように、特定のレイヤーのすべてのデータをユーザーに表示したいと考えています。
前提条件
レイヤーは WFS として公開する必要があり ( OGC サービスの機能 を参照)、主キーは 、同様に公開する必要があります。 :guilabel:` レイヤプロパティ ` で同様に公開する必要があります。
ツールの設定
レイヤー レベルで
Lizmap プラグインダイアログの Tools タブには、ベクターレイヤーを追加または削除するためのテーブルといくつかのフォームフィールドを表示する「属性レイヤー」というグループがあります。
このツールにレイヤーを追加するには:
ボタン をクリックします。
**レイヤー** : ベクターレイヤーの1つを選択します(空間的かどうか)。これは、任意のベクターレイヤー形式にすることができます:GeoJSON, Shapefile, PostGIS, CSV,等.
**固有のID** : 属性テーブル ツールは、各地物を固有なものとして定義できる必要があります。レイヤーにまだフィールドがない場合は、このようなフィールドを追加することを強くお勧めします。通常、固有のID フィールドには 整数 が含まれます。レイヤーにこの種類のフィールドがない場合は、*フィールド演算*で簡単に作成できます。コンボ ボックスで適切なフィールドを選択します。
**非表示にするフィールド** : 公開された属性テーブルのフィールドを非表示にする 2 つの方法があります。
QGIS ベクターレイヤーの ベクターレイヤープロパティダイアログ の フィールド タブで、公開を取り消すフィールドの列 WFS のチェックボックスをオフにすることができます。つまり、このフィールドは WFS プロトコルを介して公開されません。これは、文書をいくつかのフィールドに制限する 最も簡単で最も簡単な方法 です(たとえば、機密フィールドを取り除くために)。
この フィールドを使用して非表示 オプションを使用して、属性テーブルの表示で指定されたフィールドを 非表示 にできます。非表示フィールドはエンド ユーザーには表示されませんが、lizmap Web クライアントで引き続き使用できます。 このオプションを使用して、固有のID フィールドを非表示にする必要があります 最初の方法 (WFS 列のチェックを外す) を使用すると、固有のID は Lizmap で使用できなくなり、属性テーブルフィーチャの一部が正しく機能しません。
:guilabel:` ピボットテーブル ` をオフにします。これはリレーションのためのものです。
:guilabel:` 下位サブパネルで非表示にする ` チェックを外します。これはリレーションのためのものです。
:guilabel:` リスト内のレイヤーを非表示にする ` チェックを外します。これはリレーションのためのものです。
テーブル内のレイヤーを編集するには、レイヤーを選択して、 ボタンをクリックするか、行をダブルクリックします。
テーブルからレイヤーを削除するには、レイヤーを選択して、 ボタン。
レイヤーを上下に移動するには、レイヤーを選択して または ボタン。lizmapでも順序が変わります。
フィールドが定義されている場合は、エイリアスとともにフィールドが表示されます。参照してください フィールドに別名を追加する 。
プロジェクト レベルで
フィールドの順序
Lizmap は、属性テーブルで定義されているフィールドの順序を再利用しています。
属性テーブルを開きます。
列ヘッダーを右クリックします。
:guilabel:` 列を整理... `をクリックします。
列をドラッグ アンド ドロップします。
データのダウンロード
属性テーブル ツールにレイヤーを追加することで、そのレイヤーのダウンロード機能も有効になります。デフォルトでは、GeoJSON と GML のみが使用できます。QGISサーバーに「WfsOutputExtension」プラグインをインストールすることで、ジオパッケージ、ODS、CSV、XLSXなどのフォーマットを追加できます。https://github.com/3liz/qgis-wfsOutputExtension を読む
リレーションとの使用
QGISでは、プロジェクトプロパティ ダイアログで、レイヤー間の リレーション を設定することができます。Lizmap で複数のレイヤーを属性レイヤー ツールで公開し、一部のレイヤーがリレーションの一部である場合、エンド ユーザーは上位レイヤー テーブルの下に下位テーブルを表示でき、上位テーブルの 1 行をクリックすると下位テーブルコンテンツのフィルターが起動されます。
たとえば、都市のレイヤーと公共の建物の下位レイヤーを持つことができます。属性テーブル内の 1 つの都市をクリックすると、クリックした都市の公共の建物だけで、パブリック ビルの下位テーブルの内容が更新されます。
バージョン2.14以降、QGISでは「多対多」(N:M)関係を使用できますが、Lizmapはまだ自動的には使用されません。Lizmap プラグインでもリレーションを定義する必要があります。多くの場合、N:M の関係は非常に便利です。たとえば、プロジェクトに次の 3 つのベクター レイヤーを使用できます。
**Tramway lines** :このレイヤー名「Lines」は、トラムラインごとに1つの地物と固有のIDフィールド *tram_id* を持ちます
**Tramway stops** :このレイヤーは、 stop_id と呼ばれる固有のIDフィールドを持つトラム停留所ごとに1つの地物が含まれています
**Correspondance table between lines and stops** :このレイヤーは、停留所が複数のラインに使用でき、ラインが多くの停留所に対応するため、トラムラインとストップ間のピボットテーブルです。このフィールドには、 tram_id 、 stop_id 、および*order*のフィールドがあり、行のストップの順序を定義します。
QGISプロジェクトプロパティに2つのリレーションを追加できます:tram_idフィールドを使用してラインとピボットの間の1つと、stop_idフィールドを使用してストップとピボットの間の1つ。
Lizmap では、N:M 関係を設定する簡単な方法を追加しました。あなたは、単にすることができます
QGISプロジェクトプロパティダイアログ、タブ リレーション で上記の2つの関係を作成します。
属性レイヤー ツールでライン レイヤーとストップ レイヤーを追加する
オプション Pivot table をオンにして、属性レイヤー ツールにピボット レイヤーを追加します。
その後、Lizmap Web クライアントは、リレーションを N:M リレーションとして処理します。
ピボットテーブルは各親属性テーブルの下に表示され、対応する下位のみが表示されます。
属性レイヤーに基づくフィルター 地物は、ピボットともう一方の上位のカスケード フィルターを起動します。たとえば、ユーザーがフィルタを使用して路面電車のラインを 1 本だけ表示する場合、Lizmap は対応するストップをマップと Stops 属性テーブルに表示します。