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