日本語

操作手順: Collector for ArcGIS で作成したアタッチメントをホスト フィーチャ サービスから元のフィーチャクラスへアタッチメントを失うことなく転送

概要

ArcGIS Online ホスト フィーチャ サービスを使用する場合、Collector for ArcGIS アプリで収集したデータによるアタッチメントを、フィーチャ サービスの作成に使用するジオデータベースに格納されている元のフィーチャクラスに転送またはマージする必要が生じる場合があります。

このことは、アタッチメント データが、フィーチャ サービスによるジオメトリを保持することなくローカルに保存されていれば、実現可能です。 ただし、ホスト フィーチャ サービスのデータを ArcMap の別のフィーチャクラスにエクスポートする場合、アタッチメントは保持されません。 これは予期された挙動です。アタッチメントは別のテーブルに格納されており、元のアタッチメント テーブルを新しいフィーチャクラスのアタッチメント テーブルに接続するために作成されたリレーションシップ クラスを追加すると、アタッチメントを含まない空の出力テーブルが作成されるからです。

以下の手順は、ArcGIS Online と ArcMap を使用して、ホスト フィーチャ サービス内のアタッチメントをファイル ジオデータベースのフィーチャクラスに転送するときに保持する方法を示しています。

手順

  1. ArcGIS Online で、アイテム詳細ページの [FGDB にエクスポート] オプションを使用して、Collector for ArcGIS のアタッチメント データを含むフィーチャ サービスを新しいファイル ジオデータベースにエクスポートします。
  2. [ファイル ジオデータベースにエクスポート] ウィンドウで、ファイル ジオデータベースのタイトル、タグ、サマリーを入力します。 ファイル ジオデータベースを保存するフォルダーを指定して、[エクスポート] をクリックします。
  3. エクスポート プロセスの完了後、[ダウンロード] をクリックして、ローカルで編集するためにファイル ジオデータベースをダウンロードします。 ファイル ジオデータベースにはフィーチャクラスとリレーションシップ クラスが含まれています。リレーションシップ クラスは、GlobalID および REL_GLOBALID フィールドを使用して、フィーチャを関連付けのあるアタッチメントとリンクするために使用されます。
  4. ArcMap で、結合を実行して、ダウンロードしたフィーチャクラスの属性フィールドを元のフィーチャクラスに追加します。 このためには、元のフィーチャクラスを右クリックして [結合とリレート][結合] の順に選択します。 この結合は、両方のテーブルに存在する一意の ID フィールドに基づいています。 この手順が完了すると、ArcGIS Online で作成された GlobalID フィールドが元のフィーチャクラスに追加されます。
The GlobalID added to the original feature class
  1. 2 つ目の結合を実行して、ダウンロードしたアタッチメント テーブルの属性フィールドをステップ 4 で作成した結合テーブルに追加します。 この結合は、ダウンロードしたアタッチメント テーブルの GlobalID および REL_GLOBALID フィールドに基づいています。 この手順が完了すると、Collector データのアタッチメント ID と名前が元のフィーチャクラスに追加されます。
The Join Data dialog box

The original feature class after the second join
注意:
結合の実行後には、フィーチャクラスを新しいフィーチャクラスにエクスポートして、結合を永続化することをお勧めします。 これにより、アクティブな結合による予期しない挙動を回避できます。 この記事の以降の手順には、新しく結合されたフィーチャクラスを使用します。  
  1. コンピューター上にファイル ディレクトリを作成し、「操作手順: アタッチメントをフィーチャクラスからバッチ エクスポート」に示す手順を使用して、すべてのアタッチメントをバッチ ダウンロードします。
  2. ステップ 5 で作成した結合テーブルに新しいテキスト フィールドを追加し、[フィールド演算] を使用してそのフィールドにアタッチメント ファイルのパスを入力します。 このためには、形式として [VB Script] を選択し、次のコードを挿入します。
"<アタッチメントを含むフォルダーのパス>\ATT" & [ATTACHMENTID] & "_" & [ATT_NAME]

[フィールド演算] の結果は次のようになります。
The result of the Field Calculator
  1. ステップ 5 でバッチ ダウンロードしたアタッチメントのファイル パスがフィールドの各レコードに入力されたら、[アタッチメントの有効化 (Enable Attachments)] ツールを使用して、フィーチャクラスのアタッチメントを有効にします。 または、[カタログ] ウィンドウでフィーチャクラスを右クリックして、[管理][アタッチメントの作成] の順に選択します。
  2. [アタッチメントの追加 (Add Attachments)] ツールを使用して、アタッチメントをフィーチャクラスに追加します。 この手順が完了すると、アタッチメント テーブルとすべてのアタッチメントを格納する元のフィーチャクラスに対して、新しいリレーションシップ クラスが作成されます。
The Add Attachments tool

関連情報