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 プロジェクトと、オフラインまたはハイブリッドデータパッケージに含まれる可能性のある関連ファイル(ジオパッケージ、画像など)で構成されます。
ユースケース¶
ハイブリッド¶
サーバー上でハイブリッドな編集モードで同期
オフラインデータベース¶
オフライン編集モードでデスクトップと同期