ArcGIS は、空間インデックスを使用して、フィーチャクラスの空間検索パフォーマンスを向上させます。ArcMap でのフィーチャの個別属性表示、ポイントまたはボックスのドラッグによるフィーチャの選択、および画面移動やズームでは、空間インデックスを使用してフィーチャを特定する必要があります。
空のフィーチャクラス* を作成するか、ArcGIS からデータをインポートしてジオデータベース内にフィーチャクラスを作成すると、フィーチャクラスに空間インデックスが作成されます。空間インデックスは、データの検索および編集中に使用されます。
DB2 のジオデータベースに空のフィーチャクラスを作成する場合、空間インデックスは作成されません。
空間インデックスのタイプ
空間インデックスは、データ ソースによって異なります。以下のタイプのデータベース内のフィーチャクラスは、グリッドベースの空間インデックスを使用します。
- パーソナル ジオデータベース
- ファイル ジオデータベース
- DB2 のジオデータベース
- Oracle のジオデータベース (フィーチャクラスに Esri ST_Geometry またはバイナリ ジオメトリ格納フィールドが含まれている場合)
- SQL Server のジオデータベース (フィーチャクラスにバイナリ ジオメトリ格納フィールドが含まれている場合)
以下のタイプのデータベース内のフィーチャクラスは、R-ツリー空間インデックスを使用します。
- Oracle のジオデータベース (フィーチャクラスに Oracle Spatial (SDO_Geometry) 格納フィールドが含まれている場合)
- Informix のジオデータベース
- PostgreSQL のジオデータベース
geometry または geography 格納フィールドを含んでいる SQL Server のジオデータベースのフィーチャクラスは、変更された B-ツリー空間インデックスを使用します。
ArcGIS で空間インデックスを管理する方法
ArcGIS は、ファイル、エンタープライズ、ワークグループ、およびデスクトップ ジオデータベースでの特定の操作の最後に空間インデックスを自動的に再構築して、空間インデックスを最適な状態に保ちます。次に、ArcGIS が空間インデックスを管理する方法を示します。
- [新規フィーチャクラス] ウィザードで空のフィーチャクラスを作成すると、DB2 データベース以外のファイル、ワークグループ、デスクトップ、およびエンタープライズ ジオデータベースに空間インデックスが作成されます。空間インデックスは、編集時、検索時、または [データの読み込み] コマンドの実行時に使用されます。DB2 のエンタープライズ ジオデータベースでは、空間インデックスは、データが空のフィーチャクラスに読み込まれてから作成されます。
- パーソナル ジオデータベース、シェープファイル、またはカバレッジからデータをインポートする場合、あるいは CAD/SDC データをファイル、エンタープライズ、ワークグループ、またはデスクトップ ジオデータベースにインポートする場合には、新しいフィーチャクラスの空間インデックスが自動的に計算されます。
- ArcCatalog の [コピー] および [貼り付け] コマンドを使用して、フィーチャクラスをパーソナル ジオデータベースからファイル、エンタープライズ、ワークグループ、またはデスクトップ ジオデータベースにコピーすると、空間インデックスは自動的に再構築されます。空間インデックスは、Oracle Spatial または PostgreSQL からフィーチャクラスをコピーする場合にも再構築されます。グリッドに基づくインデックスを使用するファイルまたはエンタープライズ (Oracle バイナリと ST_Geometry、SQL Server バイナリ、または DB2) からフィーチャクラスをコピーしたり、グリッドに基づくインデックスを使用する別のジオデータベースにコピーしたりする場合、インデックスはソース データとともにコピーされ、再構築されません。
- フィーチャクラスを作成するジオプロセシング ツールを使用すると、ツールは、新しいフィーチャクラスのフィーチャに基づいて空間インデックスを作成します。
- 空間インデックスを持たないフィーチャクラスで編集を保存したり、[データの読み込み] コマンドを使用したりすると、編集の保存時またはデータの読み込み操作の終了時に空間インデックスが作成されます。
- 圧縮されたファイル ジオデータベースのフィーチャクラスは、圧縮されていないフィーチャクラスとは異なるタイプの空間インデックスを使用します。ファイル ジオデータベースのフィーチャクラスを圧縮すると、空間インデックスが自動的に再計算されます。この空間インデックスを変更することはできません。フィーチャクラスの圧縮を解除すると、圧縮前と同じ空間インデックスが自動的に再構築されます。
空間インデックスの更新時期
ファイル、エンタープライズ、ワークグループ、およびデスクトップ ジオデータベースの空間インデックスは ArcGIS によって管理されるため、空間インデックスを手動で再作成する必要はほとんどありません。フィーチャクラスにすでに存在するフィーチャとはサイズが異なるフィーチャを大量に追加した場合にのみ、空間インデックスを再作成することをお勧めします。これが当てはまるのは、編集セッションでのフィーチャの追加に限られます。たとえば、編集セッションを開始して、大量のライン フィーチャを手動で追加する、またはオブジェクト ローダーを使用してそれらを読み込むとします。追加したフィーチャの多くは、フィーチャクラスの既存のフィーチャよりもかなり長いか短いかのどちらかです。空間インデックスを新しいフィーチャで最適に機能するように更新する必要があります。
パーソナル ジオデータベースでフィーチャクラスを作成する場合は、[新規フィーチャクラス] ウィザード、ジオプロセシング ツールなどの作成方法にかかわらず、ArcGIS は空間インデックスを計算します。パーソナル ジオデータベースのフィーチャクラスに対して作成される空間インデックスは、フィーチャクラス座標系の水平線を基準とし、常に最適サイズになります。これは変更できません。