ObjectID フィールドの基礎
ArcGIS によって維持される ObjectID フィールドは、テーブル内の各行が一意な ID を持つことを保証します。テーブルまたはレイヤの属性テーブルでは、通常、テーブルとレイヤの ObjectID(OID)のエイリアスの下に ObjectID フィールドが表示されます。選択セットのスクロールや表示などの主な機能は、このフィールドが存在するかどうかに依存します。
ArcCatalog と ArcMap でサポートされるほとんどのデータソースは、表形式データに ObjectID フィールドを含んでいます。これらのデータの場合、ObjectID フィールドは ArcMap の [テーブル] ウィンドウと ArcCatalog のテーブル プレビューによって直接アクセスおよび使用されます。ただし、次のデータ ソースは表形式データに ObjectID を含んでいません。
- OLE DB データ
- 区切りテキスト ファイル データ
- Microsoft Excel データ
- SDE 3 の非空間データ(注意: 空間データには ObjectID フィールドが含まれます。)
- ArcSDE の未登録の非空間データ(注意: 未登録の空間データには ObjectID フィールドが含まれます。)
- パーソナル ジオデータベースの未登録のデータ
使用しているテーブルのタイプが不明で、テーブルに ObjectID フィールドがあるかどうかがわからない場合は、簡単に確認することができます。ArcMap のコンテンツ ウィンドウで、[ソース別にリスト] ビュー でテーブルを右クリックし、[プロパティ] をクリックします。[テーブル プロパティ] ダイアログ ボックスの [ソース] タブをクリックし、[オブジェクト ID フィールドを持つ] のエントリが [Yes] または [No] のどちらであるかを確認します。ArcMap または ArcCatalog で、テーブルの [プロパティ] ダイアログ ボックスを開き、[フィールド] タブをクリックします。ObjectID データ タイプのフィールドが表示されない場合は、データ ソースに ObjectID フィールドがありません。
テーブルに ObjectID フィールドがない場合は、次の操作を実行できません。
- マップ上のレイヤでのフィーチャの選択。[属性検索] の式を使用した選択を含め、[テーブル] ウィンドウでレコードを選択することはできますが、選択セットはマップに反映されません。
- フィルタ設定の適用によるレコードまたはフィーチャのサブセットのみの表示。
- リレートの作成。ただし、ObjectID フィールドがあるテーブルから、ObjectID フィールドのないテーブルに関連付けることは可能です。この場合、[個別属性] ツールでリレートを使用して、関連付けられたレコードのリストを表示することができます。リレートを通じて選択セットを強制することはできません。
- 編集セッションの開始と属性の編集。ただし、ファイルが *.txt ファイルである場合は、テキスト エディタなどを使用してレイヤの基になるテーブルを直接ディスク上で編集することができます。変更内容は、次回マップを更新したときにマップに反映されます。
データの ObjectID フィールドを設定する方法はいくつかあります。
- X、Y 座標値を含むテーブルを使用していて、これらを ArcMap で表示している場合は、X、Y レイヤを新しいフィーチャクラスにエクスポートすることができます。座標値を含むテーブルを、ArcCatalog で新しいポイント フィーチャクラスに変換することもできます。これらの手順はどちらも、ObjectID を持ち、完全に機能するフィーチャクラスを作成します。
- [クエリ テーブルの作成(Make Query Table)] ツールを使用できます。このツールでは、OLE DB 接続を使用してテーブルを作成し、ObjectID に使用する列を指定するか、ObjectID を動的に追加することができます。
- データ ソースによっては、データを ArcGIS に登録することで、ObjectID フィールドを追加することができます。