オフラインで使用するデータの準備
オフラインでもマップを操作できるように、マップ内で使用するフィーチャ サービスに対して同期機能を有効にすることができます。同期機能により、クライアントでデータのローカル コピーを作成することができます。公開者が許可している場合は、クライアントでデータのローカル コピーを編集し、接続性が確保された時点でフィーチャ サービスと同期させることができます。
ArcGIS クライアントと開発者向け SDK でも、フィーチャ サービスでの同期機能のサポートが強化されつつあります。オフラインでのマップの操作を最初にサポートするクライアントは、バージョン 10.2.2 の Collector for ArcGIS と ArcGIS Runtime SDK です。
データの準備
同期機能を使用するには、フィーチャ サービス内のすべてのデータがエンタープライズ ジオデータベースからのデータである必要があります。また、データをオフラインで使用し、必要な場合は接続性が確保された時点でフィーチャ サービスと同期できるように、データの準備をしておく必要があります。データを準備する方法は、データのローカル コピーが編集可能か読み取り専用かによって異なり、また読み取り専用の場合は、フィーチャ サービスでバージョン対応登録されたデータを使用しているかどうかによって異なります。
クライアントでオフライン状態のままデータを編集し、接続性が確保された時点で変更を同期する場合は、フィーチャ サービスにバージョン非対応データを含める必要があります。バージョン非対応データを同期機能で使用できるようにするには、次の準備作業が必要です。
- データセットの履歴管理を有効にします。注意:
フィーチャクラスに、バイナリ空間タイプではなく、SQL 空間データ タイプが含まれている場合、フィーチャクラス以外の履歴管理は有効化できません。フィーチャクラスのジオメトリ ストレージに Esri バイナリ タイプを使用する場合は、履歴管理を有効化する前に、SQL 空間タイプを使用できるようにデータを移行します。
- データセットに Global ID を含めます。
- アタッチメントとリレーションシップ クラスで Global ID の主キーを使用する必要があります。詳細については、「アタッチメントとリレーションシップ クラス」のセクションをご参照ください。
このシナリオの詳細については、「チュートリアル: オフラインで使用するためのフィーチャ サービス データの設定」をご参照ください。
リリース 10.2 以降のエンタープライズ ジオデータベースのバージョン対応登録されていないデータを公開したり、オフラインでデータを取得して編集したり、エンタープライズ ジオデータベースの変更を同期したりすることができます。
ダウンロードしたデータの検索だけをクライアントで実行する場合、フィーチャ サービス内のデータはバージョン非対応データでもバージョン対応登録されたデータでもかまいません。バージョン非対応データの場合は、上記のとおりにデータを準備します。バージョン対応登録されたデータの場合は、次のとおりにデータを設定します。
- データセットに Global ID を含めます。
- データセットをバージョン対応登録します。
- アタッチメントとリレーションシップ クラスで Global ID の主キーを使用する必要があります。詳細については、「アタッチメントとリレーションシップ クラス」のセクションをご参照ください。
サポートされているエンタープライズ ジオデータベースのバージョン対応登録データを公開したり、オフラインでデータを取得することもできます。
同期機能を有効にすることができるのは、マップ内のすべてのデータがまったく同じ設定になっている場合に限ります。設定の異なるデータを混在させることはできません。たとえば、クライアントでデータが編集された結果、データがバージョン対応登録されなくなる場合は、マップ内のすべてのデータでアーカイブを有効にして、Global ID を含める必要があります。Global ID はカスタム フィールドを基準にすることができず、ArcGIS で作成された Global ID フィールドを明示的に使用する必要があります。データに Global ID を追加するには、[Global ID の追加(Add Global IDs)] ジオプロセシング ツールを使用するか、フィーチャクラス、フィーチャ データセット、およびカタログ ツリーのテーブル ショートカット メニューにある [Global ID の追加] コマンドを使用します。
アタッチメントとリレーションシップ クラス
オフラインで使用するデータにアタッチメントが含まれている場合やオフラインで使用するデータがリレーションシップ クラスに属している場合は、テーブル間のリレーションシップやテーブルとアタッチメント間のリレーションシップで Global ID 列またはユーザ管理フィールドを主キーとして使用する必要があります。ObjectID 列を主キーにすると、オフラインで使用するデータをダウンロードした時点でエラーが返されます。[リレーションシップ クラスの移行(Migrate Relationship Class)] ジオプロセシング ツールを使用すると、Global ID フィールドが主キーになるように ObjectID ベースのリレーションシップ クラスと添付ファイルを変換できます。
ArcGIS Server の管理されたデータベースの使用
ArcGIS Server の管理されたデータベースに公開した時点で同期機能を有効にする場合、データの準備は不要です。公開プロセスにより、データが同期機能をサポートするように自動的に設定されます。ArcGIS Server の管理されたデータベースに公開しない場合や ArcGIS Server の管理されたデータベースに公開した後で同期機能を有効にする場合は、上記のセクションの記載に従ってジオデータベース データを準備する必要があります。
編集情報の記録
編集情報の記録は、オフラインで編集したデータに使用できます。オフラインで使用するデータをクライアントにダウンロードすると、編集情報の記録フィールド内の既存の値が残りのデータと一緒にクライアントにコピーされます。オフラインでデータの処理を行った場合は、フィーチャが作成または編集された日付と時刻が作成日フィールドまたは編集日フィールドにそれぞれ記録されます。これらの値は、データがサービスと同期された時点で保存されます。
日付の値はすべて UTC 形式になります。
オフラインでの作業中はサーバに接続されておらず、サーバのユーザ ストアにアクセスできないため、編集者名と作成者名の値は、データがサービスと同期された時点で表示されます。
- オフライン中に作成されたフィーチャの場合は、データを同期するためにサービスに接続したユーザの名前が作成者名の値として設定されます。
- オフライン中に編集された既存のフィーチャの場合は、データを同期するためにサービスに接続したユーザの名前が編集者名の値として設定されます。これらのフィーチャの作成者名の値は変更できません。
ホスト フィーチャ サービス
ArcGIS Online でホストされているフィーチャ サービスを公開する場合は、同期機能を有効にした時点で同期機能を使用するためのデータが自動的に準備されます。公開者は ArcGIS Online ホスティング サーバへのアクセス権がなく、同期機能を使用するためのデータを手動で準備することができないため、この処理が実行されます。
ホストされているサービスを Portal for ArcGIS に公開する場合は、データを手動で変更する必要があります。詳細については、Portal for ArcGIS のヘルプにある「オフライン マッピング時のホスト フィーチャ サービスの有効化」をご参照ください。
フィーチャ サービスの準備
フィーチャ サービスを作成する場合、公開者はそのサービスで実行できる編集が定義されたオプションを選択します。オフラインでマップを使用する場合のオプションを適用する方法を次のセクションに示します。
許可されるオペレーション(機能)
フィーチャ サービス ケーパビリティでは、フィーチャ サービスを使用するときに許可される操作が定義されます。オフライン マップの使用に関連するフィーチャ サービスに対して、次の 2 つの構成がサポートされています。
- 読み取り専用データ - クライアントがオフラインで使用するためにフィーチャ サービスからダウンロードするデータを検索するだけの場合は、フィーチャ サービスに対するクエリと同期のケーパビリティを設定します。この構成では、データをサービスに同期できません。
- 編集可能データ - クライアントでオフライン状態のままデータを編集し、接続性が確保された時点で変更をフィーチャ サービスと同期する場合は、フィーチャ サービスに対して作成、削除、クエリ、同期、および更新機能を設定します。すべての編集機能を許可しなければならない点に注意してください。
その他すべての構成では、データのダウンロードや同期を実行すると、エラーが返されます。
フィーチャ サービスが作成された後で、公開者や管理者は同期機能を無効にしてもかまいません。たとえば、公開者や管理者は、インデックスの再構築などのデータのメンテナンス作業が進行中の場合にクライアントがサービスと同期しないようにするために、フィーチャ サービスに対して同期機能を無効にすることができます。
ショート トランザクション
同期に対応したフィーチャ サービスを編集する場合は、長時間にわたって編集トランザクションを開いたままの状態にしてはなりません。たとえば、フィーチャ サービスでの同期にも使用されるデータを ArcMap で編集する予定の場合は、必ず定期的に編集内容を保存し、編集セッションが完了した時点で編集作業を終了するようにしてください。
ジオメトリの更新とトゥルー カーブ設定
ジオメトリの更新とトゥルー カーブを含むデータの編集を許可するようにフィーチャ サービスを設定できます。これらの設定が適用されるのは、編集でクライアントからサービスへの同期が行われる場合です。クライアントで行った編集がフィーチャ サービスのジオメトリの更新とトゥルー カーブ設定に違反していると、その編集はサービスと同期されません。
所有権ベースのアクセス制御
所有権ベースのアクセス制御を使用してフィーチャ アクセスを制御できます。クライアントで行った編集が所有権ベースのアクセス制御ルールに違反していると、その編集はサービスと同期されません。この場合に編集の同期に使用されるログインは編集者と見なされます。
非表示のフィールドと読み取り専用フィールド
フィーチャ サービスを作成する場合は、一部のフィールドをフィーチャ サービスで読み取り専用にしたり、非表示にしたりすることができます。フィーチャ サービスで非表示になっているフィールドは、オフラインで使用する場合にクライアントにダウンロードされません。読み取り専用フィールドは、ダウンロードされた後も読み取り専用のままになります
データのローカル コピーのダウンロードやサービスとの同期に使用する出力ディレクトリ
データをローカル クライアントにダウンロードする場合は、そのデータを含むファイルが ArcGIS Server の出力ディレクトリに作成され、そのファイルをクライアントにダウンロードします。デフォルトでは、ファイルにアクセスしていない状態のまま 10 分以上が経過すると、そのファイルが出力ディレクトリから削除されます。クライアントがファイルのダウンロードを開始するまでに 10 分以上の時間が必要な場合は、クリーンアップ時間がそれより長い別の出力ディレクトリを作成し、その出力ディレクトリをフィーチャ サービス用に使用することができます。また、デフォルトの出力ディレクトリのクリーンアップ時間を延長することもできますが、この場合には、デフォルトの出力ディレクトリを使用しているすべてのサービスに影響があります。
同期モードと非同期モード
データのローカル コピーをダウンロードする操作や変更をサービスに同期させる操作は、同期モードと非同期モードのどちらでも実行できます。同期モードを使用する場合は、サービスで処理が実行されるため、使用するインスタンスの最小数と最大数、タイムアウト間隔、リサイクル間隔などのサービス設定が適用されます。非同期モードを使用する場合は、ArcGIS Server に付属している事前設定済みの SyncTools ジオプロセシング サービスで処理が実行されるため、SyncTools ジオプロセシング サービスの設定が適用されます。
同期プロセスのシステム情報
オフラインでマップを使用するためのデータをダウンロードする場合や変更をサービスに同期し直す場合、これらのプロセスに関する情報は、フィーチャ サービスでソース データとして使用されているエンタープライズ ジオデータベースのシステム テーブルに格納されています。フィーチャ サービスのレプリカ リソースには、そのフィーチャ サービスのメタデータが作成されます。サービスがセキュリティで保護されている場合は、ログインしているユーザまたは匿名ユーザに関連したメタデータだけが作成されます。また、ジオデータ サービスにも、ジオデータベースを参照しているすべてのフィーチャ サービスのメタデータが作成されるレプリカ リソースが用意されています。管理者はジオデータ サービスを使用して、サービスごとのメタデータの作成や削除されたフィーチャ サービスのメタデータの削除などの作業を実行できます。
クライアントから ArcGIS REST API を介して同期機能にアクセスすることができます。