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