クエリ ウィジェットを使用すると、事前に定義されたクエリを実行して、ソース データから情報を取得することができます。データ ソースには次のいずれかを指定できます。
- 現在のマップのフィーチャ レイヤー
- ポータルのアイテムとしてのフィーチャ レイヤー
- ArcGIS Server REST サービスのフィーチャ レイヤー
ヒント:
マップ サービスまたはフィーチャ サービスのフィーチャ レイヤーを使用できます。
- イメージ サービスの画像レイヤー
- テーブル
ヒント:
関連レコードを含むテーブルに対してクエリを実行すると、関連するすべてのフィーチャがマップ上でハイライト表示され、[クエリ] パネルに一覧表示されます。
クエリ ウィジェットは、構成時にクエリ ビルダーとして機能します。ソース データおよびフィルターを指定したり、クエリ結果にフィールドを表示することで、クエリを定義することができます。各クエリは、単一のレイヤーに対して動作します。ただし、単一のアプリに複数のクエリを定義することができ、複数のソースからデータ レイヤーを使用できます。
クエリ ウィジェットの構成
クエリ ウィジェットは、アプリの起動時に自動的に開くように設定できます。これを行うには、ウィジェットのドットをクリックして濃い緑色に変えます。
クエリを構成する手順を次に示します。複数のクエリを定義する必要がある場合は、これらの手順を繰り返します。
- クエリ ウィジェットにマウス ポインターを合わせて、小さい編集アイコン をクリックします。
このウィジェットの構成ウィンドウが表示されます。
- このウィジェットのデフォルト アイコンを変更する場合は、[ウィジェット アイコンの変更] をクリックします。
ファイル エクスプローラー ウィンドウが表示され、ウィジェット アイコンとして使用するローカル イメージ ファイルを選択できます。
- [+ 新規クエリ] をクリックします。
[データ ソースの設定] ウィンドウが表示されます。デフォルトでは、[マップから選択] が選択され、現在のマップのすべてのフィーチャ レイヤーが下にリストされます。
または、 [ポータルから選択]または [サービス URL の追加] を選択できます。レイヤーに加えて、関連テーブルに対するクエリを実行することもできます。
- データ ソースの横にあるラジオ ボタンをクリックします。
- リストからレイヤーを選択します。
- [OK] をクリックして [データ ソースの設定] ウィンドウを閉じ、クエリ構成ウィンドウに戻ります。
デフォルトでは、[情報] タブはアクティブになります。
- クエリ タスクのタイトルとアイコンを指定します。
- [フィルター] タブをクリックします。
- [属性条件] の [設定] をクリックし、クエリの Where 句を定義します。
- [フィルターの条件式を追加] をクリックして、式の設定を表示します。
フィルターの条件式には、演算に基づく値または 2 つのフィールド間の演算を指定できます。
- クエリ フィールド (条件式) を選択し、テキスト ボックスに値を入力します。次の 3 つのオプションがあります。
- [値] - このフィルターは、特定の値に基づいて適用されます。事前定義済みの値を設定するか、[値の確認] チェックボックスをオンにして、対話形式でエンド ユーザーに新しい値の確認を求めることができます。[値の確認] を有効にした場合は、値に関する情報を [プロンプト] フィールドに入力し、ヒントを [ヒント] フィールドに入力します。これは、エンド ユーザーが検索値を入力する際に役立ちます。
- [フィールド] - 1 つのフィールド内の値を別のフィールド内の値と比較します。
- [個別値] - このフィルターは、レイヤー内で選択されたフィールドの個別値のリストに基づいて適用されます。このオプションは [値の確認] と組み合わせて使用されることが多く、エンド ユーザーは対話形式でリストから値を選択することができます。リストには、すべての個別値を含めるか、前の条件式または他のすべての条件式 (順序に関係なく) に基づく動的な個別値を含めることができます。[値の確認] を有効にした場合は、値に関する情報を [プロンプト] フィールドに入力し、ヒントを [ヒント] フィールドに入力して、値をリストに表示する方法を選択します。
注意:
[前の条件式でフィルター処理した値] または [他のすべての条件式でフィルター処理した値] を選択した場合のコード値の説明を表示するには、サービスが統計情報に基づくクエリの機能に対応している必要があります。
- また、単一のクエリに 2 つのフィルターを定義して適用できる [式のセットの追加] を使用することもできます。このセットに含まれる式の [すべて] または [一部] が true の場合、セットに含まれるすべての式を満たす記録または一部の式を満たす記録が結果として返されます。
- [OK] をクリックして、ダイアログ ボックスを閉じます。
- [フィルターの条件式を追加] をクリックして、式の設定を表示します。
- ウィジェットの SQL 式を表示するには、[エンド ユーザー用の SQL 式の表示] チェックボックスをオンにします。
- [空間フィルター] セクションでは、エンド ユーザーが使用できる空間フィルターを選択できます。次の 1 つ以上のフィルターのチェックボックスをオンにした後、[デフォルトに設定] をクリックして、いずれかのフィルターをデフォルトとして設定します。
- [現在のマップ範囲に含まれるフィーチャのみを返します] - 現在のマップ範囲内のフィーチャを返します。
- [マップに描画された図形と交差するフィーチャのみを返します] - アイコンをクリックすると、ウィジェットに表示される描画ツールを選択できます。エンド ユーザー向けのバッファー設定を追加するには、[バッファー オプションの有効化] オプションをオンにします。
- [別のレイヤー内のフィーチャとの空間リレーションシップのあるフィーチャのみを返します] - [設定] をクリックすると、[空間リレーションシップを設定] から空間リレーションシップ ルールを選択できます。ラベル フィールドをダブルクリックすると、リレーションシップごとにわかりやすいラベルを指定できます。エンド ユーザー向けのバッファー設定を追加するには、[バッファー オプションの有効化] オプションをオンにします。以下の空間リレーションシップがサポートされています。
- [交差する] - レイヤー 1 のフィーチャの一部がレイヤー 2 のフィーチャに格納されています。
- [含む] - レイヤー 1 の一部またはすべてのフィーチャに、レイヤー 2 のフィーチャが完全に含まれています。
- [交差] - レイヤー 1 のフィーチャがレイヤー 2 のフィーチャに交差しています。
- [エンベロープ インターセクト] - レイヤー 1 のエンベロープがレイヤー 2 のエンベロープに交差しています。
- [インデックス インターセクト] - クエリ レイヤーのエンベロープが、ターゲット レイヤーのインデックス エントリに交差しています。
- [OVERLAP] - レイヤー 1 のフィーチャがレイヤー 2 のフィーチャと重複しています。
- [接する] - レイヤー 1 のフィーチャが、レイヤー 2 のフィーチャの境界線に接しています。
- [含まれる] - レイヤー 1 のフィーチャがレイヤー 2 のフィーチャに完全に含まれています。
- [マップの全範囲に含まれるフィーチャを返します] - マップの全範囲に含まれるフィーチャを返します。
注意:
クエリに空間フィルターを適用しない場合は、すべてのオプションをオフにします。 - [結果] タブをクリックし、クエリ結果の表示コンテンツとシンボルを構成します。
- Web マップで、レイヤーのポップアップ構成で定義されたものと同じコンテンツを表示するには、[Web マップでレイヤーのポップアップ構成を使用] チェックボックスをオンにします。
- カスタム コンテンツを表示するには、[カスタム コンテンツの構成] チェックボックスをオンにします。
- [各結果アイテムのタイトル] テキスト ボックスの横にある追加アイコンをクリックします。
レイヤー内のフィールドが一覧表示されます。一度に 1 つのフィールドのみ選択できます。選択したフィールドの値がテキスト ボックスに表示され、クエリ結果のタイトルとして使用されます。フィールドを追加するには、上記の手順を繰り返します。複数のフィールドを追加する場合、フィールド値の連結が、結果のタイトルとして使用されます。
- [これらの属性フィールドが表示されます] テキスト ボックスの横にある鉛筆アイコンをクリックして、[表示フィールドの設定] ダイアログ ボックスを開きます。結果に表示するフィールドをオンにします。個々のフィールドで [特殊タイプ] 列を使用すると、選択内容に応じて、これらのフィールドをリンクまたは画像として表示することができます。また、[アクション] 列にある上向き矢印と下向き矢印をクリックして、フィールドの順序を調整することもできます。
- [各結果アイテムのタイトル] テキスト ボックスの横にある追加アイコンをクリックします。
- [結果アイテムの並べ替え] の横にある鉛筆アイコンをクリックして、クエリ結果の並べ替えの基準となるフィールドを構成します。
サービスでページネーションまたはクエリ結果の並べ替えがサポートされていなくてはなりません。
- レイヤーのデフォルト シンボルを使用する場合は、[レイヤーで定義されたシンボルを使用] チェックボックスをオンにします。
- 必要に応じて、[カスタム シンボルの使用] オプションを選択し、シンボル アイコンをクリックして、カスタム シンボルを設定します。
[プレビュー] ウィンドウが表示されます。このウィンドウで、ハイライト表示されているシンボルの色とスタイルを選択できます。
- シンボルのプレビュー ウィンドウの外側をクリックして閉じます。
- 必要に応じて、実行時に結果として生成されるフィーチャのシンボルを対話形式で変更する場合は、[実行時にシンボルの変更を許可] チェックボックスをオンにします。
- [オプション] タブをクリックして、クエリ結果をエクスポートできるようにするかどうか、およびクエリ タスクでレイヤーをどのように作成するかを指定します。
- クエリ タスクをさらに追加するには、手順 3 ~ 20 を繰り返します。
- 既存のクエリ タスクを並べ替えるには、タスク名の上にマウス ポインターを合わせて、上矢印または下矢印をクリックします。
- [OK] をクリックして、[クエリ] ウィンドウを保存して閉じます。
クエリ ウィジェットの使用
クエリ ウィジェットを使用する手順を次に示します。
- クエリ ウィジェットをクリックすると、ウィジェットが開きます。2 つ以上のクエリが構成されている場合は、[タスク] タブにクエリのリストが表示されます。
ウィジェットにクエリが 1 つしかなく、エンド ユーザーからの入力を必要としない場合は、ウィジェットをクリックするとクエリが実行され、結果がすぐに表示されます。
ウィジェットにクエリが 1 つしかなく、エンド ユーザーからの入力が必要な場合は、ウィジェットをクリックすると、クエリとユーザー入力が表示されます。
注意:
エンド ユーザーからの入力には、属性条件、1 つ以上の空間フィルター、またはこれらの組み合わせがあります。
- いずれかのクエリをクリックします。クエリの実行は、構成によって異なることがあります。
- クエリが入力を必要としない場合は、結果が [結果] タブに表示され、クエリ結果のフィーチャが構成時に指定したシンボルでマップに表示されます。
- 構成時に [値の確認] チェックボックスをオンにした場合は、テキスト ボックスが表示され、パラメーターに新しい値を入力するよう求められます。最初に、デフォルトの値がボックスに表示されます。個別値が設定されている場合、このテキスト ボックスにはすべての値がリスト表示されます。
- 1 つ以上の空間フィルターを使用できます。
- [現在のマップ範囲に含まれるフィーチャのみを返します] - 現在のマップ範囲内のフィーチャを返します。
- [マップに描画された図形と交差するフィーチャのみを返します] - 描画ツールのセットを使用してマップ上に図形を描画し、エリアを定義できます。必要に応じて、図形に検索距離を適用できます。
- [別のレイヤー内のフィーチャとの空間リレーションシップのあるフィーチャのみを返します] - 結果は、クエリ レイヤーと関連レイヤーのフィーチャ間の空間リレーションシップに基づいて表示されます。必要に応じて、関連レイヤーのフィーチャのジオメトリに対し、検索距離を適用できます。
- [マップの全範囲に含まれるフィーチャを返します] - マップの全範囲に含まれるフィーチャを返します。
- [実行] をクリックしてクエリを実行します。
クエリ結果によるフィーチャが、構成時に指定されたシンボルを含んだマップにハイライト表示されます。レイヤーに関連データが含まれている場合、関連レコードも結果に含まれます。
- 省略記号 (…) をクリックすると、統計の実行、ローカルでの結果のエクスポートや ArcGIS Online または Portal for ArcGIS の [マイ コンテンツ] への結果のエクスポート、フィーチャ シンボルの変更など、結果セットに対するアクションを実行できます。
ヒント:
クエリから返されるフィーチャの最大数は、サービスに設定されている maxRecordCount プロパティによって異なります。デフォルトは 1,000 です。たとえば、デフォルト値を使用して、クエリから返されるフィーチャ数が 1,300 と想定される場合、クエリ結果パネルには 1,000 フィーチャが表示されます。パネルを下にスクロールすると、残りの 300 フィーチャが表示されます。
また、関連テーブルに対してクエリを実行すると、関連するすべてのフィーチャがマップ上でハイライト表示され、[クエリ] パネルに一覧表示されます。