マップ レイヤーとして描画するデータセットを指定する場合、データセット内の一部のフィーチャのみを描画したいと考えることがよくあります。このような場合、レイヤー表示用にフィーチャのサブセットを選択するクエリ式を定義することができます。この操作を「フィルター設定」と呼びます。
次に例を示します。
- 人口が特定の閾値を超える都市だけを表示できます。
- 多くのデータセット (道路データセットなど) にフィーチャのサブセット (クラス) が存在している場合に、道路の各クラスのマップ レイヤーを他のフィーチャとは無関係に定義できます。
- 広範囲にわたる数百万のフィーチャ (国や州全体のフィーチャなど) を含むデータセットからなる大規模なエンタープライズ データベースがあるときに、そのデータのサブセットのみをマップ内で操作できます。
レイヤー内のフィーチャのサブセットのみを表示および操作したい場合は、レイヤーにフィルター設定を適用することができます。この場合は、独自の条件式を入力するか、[検索条件設定] ダイアログ ボックスを使用して検索条件を設定できます。
空間コンポーネントと属性コンポーネントの両方を含むエンタープライズ ジオデータベース フィーチャクラスに対してクエリを実行する場合、[検索順序] ボタンをクリックして表示されるダイアログで、空間検索と属性検索のどちらを先に実行するかを選択できます (デフォルトは空間検索)。これによりクエリの実行方法を微調整できます。このボタンは、レイヤーのデータ ソースがエンタープライズ ジオデータベース フィーチャクラスである場合のみ表示されます。
マップでデータ ドリブン ページが有効な場合は、[ページ フィルター設定] を使用して、レイヤーでどのフィーチャを描画するかを SQL クエリに基づいて指定できます。ページ フィルター設定は他のフィルター設定と似ていますが、データ ドリブン ページのみで機能し、動的であるという点が異なります。フィーチャは、現在のページに基づいてフィルタリングされます。これらのページを反復処理する中で、クエリが変更され、新しいページに適合した一連の新しいフィーチャが描画されます。ページ範囲が重なり合うフィーチャがあり、これらのフィーチャを複数のページに表示する場合は、クリップを使用したマップのカスタマイズを検討する必要があります。このボタンは、マップ ドキュメントにデータ ドリブン ページが定義されている場合のみ表示されます。データ ドリブン ページが定義されている場合、現在データ ドリブン ページのインデックス レイヤーとして使用されているレイヤーのレイヤー プロパティには、このボタンは表示されません。
イベント データの場合、イベント レイヤーではなく表形式データ ソースからフィーチャクラスを作成するという回避策があります。X、Y データが格納されている ObjectID フィールドがないテーブルを追加する場合は、ArcMap の [ファイル] > [データの追加] > [XY データの追加] コマンドを使用してテーブルに基づいてイベント レイヤーを作成しないでください。代わりに、ArcCatalog を起動してテーブルを右クリックし、[XY テーブルからフィーチャクラスを作成] を選択してテーブルから新しいフィーチャクラスを作成した後、この新しいフィーチャクラスをマップに追加します。別の方法として、[ファイル] > [データの追加] > [XY データの追加] または [ファイル] > [データの追加] > [ルート イベントの追加] の順に選択して、ObjectID がないテーブルからイベント レイヤーを作成した後、そのデータを新しいレイヤーへエクスポートすることもできます。この方法ではデータがフィーチャクラスに保存されるため、Object ID フィールドが書き込まれます。また、[クエリ テーブルの作成 (Make Query Table)] ジオプロセシング ツールを使用することもできます。このツールでは、OLE DB 接続を使用してテーブルを作成し、ObjectID に使用する列を指定するか、ObjectID を動的に追加することができます。
フィルターの設定
- [コンテンツ] ウィンドウでレイヤーを右クリックし、[プロパティ] をクリックします。
- [レイヤー プロパティ] ダイアログ ボックスの [フィルター設定] タブをクリックします。
- 条件式を入力します。 有効な条件式の構築方法については、「条件式の構築」をご参照ください。
- [OK] をクリックします。
フィルターを設定したら、マップが再描画され、検索条件を使用して選択したフィーチャのサブセットが表示されます。このレイヤーでは、マップが更新されるたびに、引き続きこのフィーチャ サブセットが描画されます。
すべてのフィーチャをレイヤーに戻すには、単純にフィルター設定を削除します。