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