コンテンツにスキップ

QFieldCloud システム・ドキュメント

本ドキュメントの目的は、QFieldCloud システムの概要を説明し、基盤となるロジックとテクノロジーを理解することです。

エンティティとコンセプト

QGISプロジェクト

QGIS プロジェクトは、.qgs または .qgz ファイルです。プロジェクトは QGISデスクトップで作成され、QGIS のプラグイン QFieldSync を使用して QFieldCloud にアップロードされます。QGISプロジェクトをアップロードする前に、QGISプロジェクトの各レイヤーに対して、QFieldSyncとQFieldがそのレイヤーをどのように扱うかを決定する「アクション」が必要です。設定できるアクションには、QFieldCloud用と従来のケーブルエクスポート用の2種類があります。

この情報はQGSプロジェクト内でレイヤーのcustomPropertyとして、QFieldSync/actionキーとともに保存されます。

利用可能なアクションは以下の通りです:

アクションの内部名称 UI上で表示される名称
OFFLINE 統合
NO_ACTION ライブレイヤー
REMOVE レイヤを無視する
COPY コピー
KEEP_EXISTING 既存のものを維持

これはQFieldSyncの異なるレイヤーアクションでの以下のような動作となります:

アクション ファイルベースレイヤー ファイルベースでないレイヤー
OFFLINE データの統合コピーを作成する データの統合コピーを作成する
NO_ACTION N/A レイヤーにこのアクションはありません
REMOVE プロジェクトからレイヤを削除する プロジェクトからレイヤを削除する
COPY ソースのファイルパスを相対的にし、ファイルをコピーする N/A
KEEP_EXISTING 存在しない場合は、ソースのファイルパスを相対的にし、ファイルをコピーする N/A

これはQFieldCloud (libqfieldsync)のレイヤーでの振る舞いとなります:

アクション ファイルベースレイヤー ファイルベースでない
OFFLINE データをプルした時にデータの統合コピーを作成し、プッシュした時にデルタファイルを元のデータソースに適用する。 データをプルした時にデータの統合コピーを作成し、プッシュした時にデルタファイルを元のデータソースに適用する。
NO_ACTION N/A レイヤーにこのアクションはありません
REMOVE プロジェクトからレイヤを削除する プロジェクトからレイヤを削除する
COPY データソースのパスを相対パスにして、プルした時にデータのコピーを作成し、プッシュした時にデルタファイルを元のデータソースに適用する。 N/A
KEEP_EXISTING データソースのパスを相対パスにして、プルした時にデータのコピーを作成し、プッシュした時にデルタファイルを元のデータソースに適用する。 N/A

これはQFieldのレイヤーでの振る舞いとなります:

アクション ファイルベースレイヤー ファイルベースでないレイヤー
OFFLINE デルタファイルを作成し、プッシュする N/A (この時点では常にファイルベースです)
NO_ACTION N/A オンライン(ライブ)データベースを編集
REMOVE N/A (レイヤはもはや存在しません) N/A (レイヤはもはや存在しません)
COPY デルタファイルを作成し、プッシュする N/A
KEEP_EXISTING デルタファイルを作成し、プッシュする N/A

まとめると、QFieldCloudの場合:

  • NO_ACTIONは、インターネット経由でアクセス可能なサーバーにあり、 QFieldによって直接変更されるオンラインレイヤーに 使用されます。
  • HYBRIDは、ジオパッケージがサーバー上で生成され (ファイルベースのレイヤーの場合はデスクトップ上で直接生成され)、 クライアントによってダウンロードされることを意味します。クライアントは変更のデルタファイルを生成します。
  • OFFLINEは、例えば、デスクトップからサーバーにロードされる前に統合され、 QFieldCloudによって元のデータと同期されない、 QFieldCloudによって表示されないローカルデータベース を操作するために使用されます。
  • REMOVEは単にプロジェクトからレイヤーを削除します。
  • KEEP_EXISTENTはQFieldCloud同期化には使用されません。

QFieldSyncから、QFieldCloudにすでにロードされているプロジェクトを更新することができます。レイヤーの構造ではなく、スタイルやフォームなどの変更に関係する場合、サーバー上のプロジェクトは単に更新されます。レイヤーの構造に変更がある場合、プロジェクトはサーバー上でリセットされ(差分ファイルは削除されます)、各クライアントでは、新しい変更をプッシュする前に、プロジェクトの更新バージョンをダウンロードする必要があります。

QFieldCloudプロジェクト

1 つだけの QGIS プロジェクトと、オフラインまたはハイブリッドデータパッケージに含まれる可能性のある関連ファイル(ジオパッケージ、画像など)で構成されます。

ユースケース

ハイブリッド

サーバー上でハイブリッドな編集モードで同期

ハイブリッド編集モード
ハイブリッド編集モード

オフラインデータベース

オフライン編集モードでデスクトップと同期

オフライン編集モード
オフライン編集モード