28.2.4. プラグインをオフラインで編集する

データ収集の場合、現場でノートパソコンや携帯電話がオフラインで作業することはよくある状況です。ネットワークに戻ったら、変更内容をマスターデータソース(PostGISデータベースなど)と同期させる必要があります。複数の人が同じデータセットで同時に作業している場合、同じ地物を変更していなくても、手作業で編集をマージするのは難しいものです。

offlineEditingCopy オフライン編集 プラグインは、データソースの内容を SpatiaLite または GeoPackage データベースにコピーし、オフライン編集を専用のテーブルに保存することで、同期を自動化します。再びネットワークに接続した後、オフライン編集をマスターデータセットに適用することができます。

プラグインを使うには

  1. (Esriシェープファイル、PostGISまたはWFS-Tデータソースなどから)いくつかのベクタレイヤを持ったプロジェクトを開きます

  2. プラグインを有効にしている場合(:ref:core_and_external_plugins` を参照):menuselection:データベース --> オフライン編集 --> offlineEditingCopy オフラインプロジェクトに変換 に進みます。その名前を冠したダイアログが開きます。

  3. ストレージ型を選択します。GeoPackage または SpatiaLite データベース型を選択します

  4. ブラウズ ボタンを使って、オフラインデータ を保存するデータベースの場所を指定します。既存のファイルでも作成するのでもかまいません。

  5. リモートレイヤを選択 セクションで、保存したいレイヤにチェックを入れます。そのレイヤの内容はデータベースのテーブルに保存されます。

    注釈

    ターゲットのデータベース形式はネイティブでリストをサポートしないので、オフライン編集プラグインは、{文字列、数値}リストフィールドをカンマ区切りの文字列フィールドに変換します。これにより、オフライン時にこれらのフィールドの内容を読み込んで編集することができます。

    元のレイヤとオフラインのレイヤの両方のフィールドを扱いたい場合は、try()array 式関数を利用します。例:

    try(array_contains("field",1),array_contains(string_to_array("field"),1))
    
  6. 選択範囲がある場合、選択がある場合に選択地物だけを同期する チェックボックスをオンにすることで、サブセットのみを保存して作業することができます。大きなレイヤの場合、これは非常に有効です。

    これで全部です!

  7. プロジェクトを保存して現場に持って行きます。

  8. オフラインでレイヤを編集します。

  9. 再接続後、データベース ► オフライン編集 ► offlineEditingSync 同期 を使って変更をアップロードします。

注釈

オフラインで使用するレイヤは、レイヤ パネルに indicatorOffline アイコンが表示されます。

../../../../_images/create_offline_project.png

図 28.13 オフラインプロジェクトを作る