Editing — Edit a layer from the web interface
定義
ユーザーが ** PostgreSQL ** レイヤーのLizmap Webクライアントインターフェイスから ** 空間データと属性データを編集 ** することを許可することができます。Lizmap プラグインでは、1 つ以上のレイヤーを追加し、Web インターフェイスで可能なアクションを選択できます。
要素の作成
属性の変更
ジオメトリの変更
要素の削除
**属性テーブル** を設定するためにユーザーに提示 Webフォーム は、QGISベクトル レイヤープロパティ の フィールド タブで利用可能な 編集ツール をサポートしています。ドロップダウンを設定したり、列を非表示にしたり、編集不能にしたり、チェック ボックスやテキスト領域などを使用したりできます。すべての設定は、QGISとlizmapプラグインで、マウスで行われます。
さらに、Lizmap Web クライアントは自動的に列の型 (整数、実数、文字列など) を検出し、フィールドに必要なチェックとコントロールを追加します。
例
**A town** 市民が道路上の目に見える問題を特定することを願っています:未回収のゴミ、壊れた街灯、取り除く難破船。QGISプロジェクト管理者は、データを収集するための専用のレイヤーを作成し、それらをすべての人に表示します。
**An engineering office** は、プロジェクトパートナーがプロジェクトエリア上の発言を追跡することを可能にしたいと考えています。専用レイヤーにポリゴンを追加できます。
前提条件
lizmap Web クライアントでデータ編集を許可するには、次の手順を実行する必要があります。
ベクターレイヤーを PostgreSQL に格納します。
ベクターレイヤは、フィールド名にスペースを含んではいけません。
レイヤーの編集ツールを設定します。 :menuselection:` レイヤープロパティ --> 属性フォーム ` 。これは必須ではありませんが、ユーザーが入力するデータを制御するために推奨されます。フォームのレイアウト、ウィジェット、式、制約の詳細については、編集フォームのカスタマイズ を参照してください。
レイヤーは WFS として公開する必要があり ( WFS/OAPI を参照)、主キーは 、同様に公開する必要があります。 :guilabel:` レイヤプロパティ ` で同様に公開する必要があります。
レイヤーを編集したいにもかかわらず、:guilabel:'更新、:guilabel:`追加`と:guilabel:`削除`の各チェックボックスを使用する必要はありません。lizmapは WFS-T を使用しません。Lizmap はデータソース上で直接編集を行います。設定は、以下に説明するパネルでのみ行われます。
上記のような結果として:
資格情報は、編集機能を持つレイヤーのために ** QGISの認証システム ** を使用して ** はなりません ** 。認証情報は ** QGS ** プロジェクトファイルまたはPostgreSQLサービスファイル内のいずれかである必要があります ( 資格情報は安全のためQGISプロジェクトに保存しないことを推奨 ) :
'postgresql.org でサービスファイルを使用する方法<https://www.postgresql.org/docs/current/libpq-pgservice.html>`_
注釈
レイヤーに Z または M の値がいくつか含まれている場合は注意が必要ですが、残念ながら Lizmap はデータベースに保存するときにデフォルト値である「0」に設定します。
ツールの設定
詳細な手順は次のとおりです。
必要に応じて、目的のジオメトリ タイプ(ポイント、ライン、ポリゴンなど)を使用して、データベースに レイヤーを作成 します。
**主キー** を追加することについて考える:これは不可欠です!
主キー列の型は 自動インクリメント である必要があります。例えば*シリアル*からPostgreSQLへ。
**空間インデックス** の追加を考える:これはパフォーマンスにとって重要です
*属性に必要な数のフィールドを作成* :可能であれば、単純なフィールド名を使用してください。
PostgreSQL データベースで空間レイヤーを作成する方法については、QGIS のドキュメントを参照してください。: https://docs.qgis.org/latest/en/docs/user_manual/managing_data_source/index.html
編集機能を使用してレイヤーを有効にするには:
ボタン をクリックします。
ドロップダウンリストから レイヤーを選択 してください*
オプションで、編集が許可されているグループのリストをカンマで区切って追加できます。
- レイヤー リストで少なくとも 1 つのレイヤーを選択すると、スナップを有効にできます。
レイヤーは WFS として公開する必要があり ( WFS/OAPI を参照)、主キーは 、同様に公開する必要があります。 :guilabel:` レイヤプロパティ ` で同様に公開する必要があります。
スナップの許容値を設定できます。
テーブル内のレイヤーを編集するには、レイヤーを選択して、 ボタンをクリックするか、行をダブルクリックします。
テーブルからレイヤーを削除するには、レイヤーを選択して、 ボタン。
レイヤーを上下に移動するには、レイヤーを選択して または ボタン。lizmapでも順序が変わります。
フィールドが定義されている場合は、エイリアスとともにフィールドが表示されます。参照してください フィールドに別名を追加する 。
Configuring the form
The form in Lizmap is inherited from the Layer Properties. Read the 編集フォームのカスタマイズ.
編集レイヤーのデータの再利用
編集ツール用に選択したレイヤーは、「他のレイヤーと同様のレイヤー」であり、次の意味を意味します。
**QGISのスタイルとラベルは、これらのレイヤーに適用されます。** あなたは、レイヤー列の値に依存するスタイルやラベルを作成することができます。
編集ツールを提案するが、ユーザーがオンラインレイヤーからデータを表示できない場合 (したがって、他のユーザーの追加): *あなたは単に *隠し ディレクトリに入れて、編集レイヤー** を非表示にすることができます。 個々のレイヤーの非表示 を参照。
レイヤーはマスクされていない場合は **印刷可能です**
**データはプロジェクトのレイヤーに格納されます** 。管理者は、このデータを取得して、その後使用することができます。
注釈
キャッシュの使用: サーバーキャッシュまたはクライアントキャッシュを使用してレイヤーを編集するかどうかは、キャッシュの有効期限が切れるまでユーザーに対してデータが表示されないことを知りながら、そのことを行います。レイヤーを編集するためにキャッシュを有効にしないことをお勧めします。
地物のファイルとイメージの追加
プロジェクトに関連する media/upload フォルダを使用する
オンライン編集中に、各地物の画像を含むファイルをアップロードすることができます。これを達成するには、次の手順を実行する必要があります。
レイヤーの編集設定、1 つ以上のフィールドを使用して :guilabel:` 編集タイプ ` で
写真
またはファイル``を使用します。たとえば、フィールド名が``写真
と言います。QGISプロジェクトファイルのルートにフォルダを作成します
media/
とサブフォルダmedia/upload
(明らかにあなたは、あなたのコンピュータとサーバー側でローカルにそれを行う必要があります)。アップロードフォルダのWebサーバーユーザー(通常はwww-data) 書き込み権限 を与え、
media/upload
でファイルとフォルダを作成できるようにします。chmod 775 -R media/upload && chown :www-data -R media/upload
チェック
php.ini
変数 ``post_max_size``と ``upload_max_filesize``が正しく設定されているかどうかを確認してください(デフォルトでは、PHPは最大2Mバイトまでのファイルのアップロードのみを許可します)
次に、Lizmap は、レイヤー名やフィールド名などに応じて、データを格納するフォルダを作成します。たとえば、ファイルはフォルダに格納されます。media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT
、イメージ media/upload/environment/observations/species_picture/my_picture.png
.
この画像(または他のファイル)は、メディアフォルダに保存されるので、地物情報に表示することができます。 地物情報表示での使用 を参照。
特定の保存先フォルダを使用する
デフォルトの保存先フォルダを上書きできます。 media/upload/PROJECT_NAME/LAYER_NAME/FIELD_NAME/FILE_NAME.EXT
メディアを保存するパスを、プロジェクトに対して相対的に手動で設定します。これを行うには、 :guilabel:` 外部リソース ` フィールド編集ウィジェットを使用し、次の項目を設定する必要があります。
:guilabel:` デフォルトパス ` はプロジェクトに対して書き込まれます。例
../media/images/
プロジェクトフォルダの横にあるフォルダメディアにこのフィールドファイルを保存する場合。プロジェクトメディアフォルダ内のパスを設定することもできます。例えば、media/my_target_folder/
。デフォルトの :guilabel:` プロジェクトのパスに対して相対 ` オプションで、 :guilabel:` 相対パス ` チェックボックスをチェックします。
フィールドに画像を格納する場合は、 :guilabel:` 統合ドキュメントビューア ` チェックボックスをチェックし、タイプを :guilabel:` 画像 ` とする必要があります。
これにより、送信されたメディアファイルとイメージを、たとえば、ディレクトリ media
をLizmapリポジトリフォルダと同じレベルに格納することができます。
media
イメージ < -- このフォルダにイメージを保存するには、
../media/images/
pdf
環境
trees.qgs
trees.qgs.cfg
media
tree_pictures/ < -- このフォルダに画像を保存するには、
media/tree_pictures/
を使用します。