クエリ ウィジェットでは、属性または空間フィルター クエリを実行することで、データ ソースから情報を取得できます。 クエリの結果によって、他のウィジェットでも使用できる出力データ ソースが生成されます。
例
このウィジェットを使用して、次のようなアプリの設計要件をサポートします。
- ユーザーが、クエリ式に基づいてフィーチャを検索できるようにします。
- ユーザーが、マップに図形を描画し、その図形と交差するフィーチャを返せるようにします。
- ユーザーが、他のウィジェットから選択したフィーチャの形状との特定の空間リレーションシップ (インターセクトやオーバーラップなど) のあるフィーチャを検索できるようにします。
- クエリの結果を使用し、他のウィジェット用にフィーチャを作成します。
使用上の注意
クエリ ウィジェットでは、追加するクエリごとにデータ ソースを設定する必要があります。各クエリは単一のレイヤーで機能し、複数の属性と空間フィルターを定義できます。 複数のクエリを作成し、複数のデータ ソースからのレイヤーを使用することもできます。 クエリは、マップの有無に関係なく構成できます。 マップ ウィジェットのクエリから返されたフィーチャを表示するには、アクションを設定して自動的に表示するか、ユーザーがボタンをクリックできるようにするデータ アクションを使用します。 現在、シーン レイヤーを使用するには、代わりに [レコード選択の変更] トリガーを追加する必要があります。これによって、ユーザーはクエリ結果をクリックしてマップ上でハイライト表示できます。
注意:
非常に複雑なフィーチャ (頂点数が多いポリゴン フィーチャなど) に対して空間クエリを実行しようとすると、ウィジェットに過剰な負荷がかかり、結果が返されない可能性があります。 これが発生した場合、フィーチャのジェネラライズをお試しください。 サーバーの最大リソース制限を遵守していることを確認します。
設定
クエリ ウィジェットには次の設定があります。
- [新しいクエリ] - クエリを作成し、[クエリの設定] パネルで次の設定を指定します。
- [データ] - クエリするデータを選択します。 クエリごとに 1 つのデータ ソースのみ選択できます。 フィーチャ レイヤー、選択された Web マップと Web シーンに含まれるフィーチャ レイヤー、データ ビュー、出力データ ソース、およびフィーチャ サービスの URL がサポートされています。
- [ラベル] - 各クエリの名前をカスタマイズします。 ウィジェットにクエリが 1 つしかない場合は、縦の表示ラベルとアイコン配置スタイルをオフにできます。
- [アイコン] - ウィジェットに表示される各クエリのアイコンと、コンテンツ パネルのクエリ リストを選択します。 [一般] ギャラリーと [矢印] ギャラリーからアイコンを選択するか、ファイルからアイコンを追加できます。 [削除] ボタンをクリックして、未使用のアップロード済みアイコンを削除します。
注意:
次の画像形式をアップロードできます: PNG、GIF、JPG、JPEG、BMP。 最適なパフォーマンを維持するために、1 回のアップロードに対して 10MB のサイズ制限が設けられています。
- [属性フィルター] - 属性フィルター条件を指定する SQL 式を作成します。 これによって開く SQL 式ビルダーには、複雑な対話型クエリを作成するためのオプションがいくつか用意されています。
- [ラベル] - 属性フィルター セクションのラベルをカスタマイズします。
- [説明] - 情報アイコン上のホバー テキストとして表示される特定の利用者 (新規ユーザーなど) 向けの手順を提供します。
- [空間フィルター] - 使用可能とする空間フィルターを選択し、必要に応じてマップ ウィジェットを選択します。
- [ラベル] - 空間フィルター セクションのラベルをカスタマイズします。
- [データ ソースからの選択済みフィーチャ] - 別のレイヤー内のフィーチャとの空間リレーションシップのあるフィーチャを返します。 必要に応じて、関連レイヤーのフィーチャのジオメトリに対し、検索距離を適用できます。
- [空間リレーションシップ ルール] - 次のどの空間リレーションシップをユーザーに提供するのか選択します。
- [交差する] - ソース レイヤーのフィーチャの一部がフィルター レイヤーのフィーチャに格納されています。
- [含む] - ソース レイヤーのフィーチャがフィルター レイヤーのフィーチャに完全に含まれています。
- [交差] - ソース レイヤーのフィーチャがフィルター レイヤーのフィーチャに交差しています。
- [エンベロープ インターセクト] - ソース レイヤーのエンベロープがフィルター レイヤーのエンベロープに交差しています。
- [インデックス インターセクト] - ソース レイヤーのエンベロープが、フィルター レイヤーのインデックス エントリに交差しています。
- [オーバーラップ] - ソース レイヤーのフィーチャがフィルター レイヤーのフィーチャと重複しています。
- [接する] - ソース レイヤーのフィーチャが、フィルター レイヤーのフィーチャの境界線に接しています。
- [含まれる] - フィルター レイヤーのフィーチャがソース レイヤーのフィーチャに完全に含まれています。
- [バッファーの有効化] - 検索距離を追加します。 デフォルトの距離と単位を定義できます。
- [空間リレーションシップ ルール] - 次のどの空間リレーションシップをユーザーに提供するのか選択します。
- [マップからのジオメトリ] - 現在のマップ範囲内にあるか、マップに描画された図形と交差するフィーチャを返します。 描画ツールのオンとオフを切り替えることで、ウィジェットで使用できるツールを制御できます。
- [説明] - 情報アイコン上のホバー テキストとして表示される特定の利用者 (新規ユーザーなど) 向けの手順を提供します。
- [結果] - ウィジェットでクエリ結果をどのように表示するかを定義します。
- [ラベル] - 結果リストのラベルをカスタマイズします。
- 選択モード - 結果リストからユーザーが選択できるレコードの数を選択します。
- [単一] - ユーザーは一度に 1 つのレコードを選択できます。
- [複数] - ユーザーは複数のレコードを選択できます。
- [各レコードの構成] - ソース データからの設定を優先するか、表示するフィールドをレイヤーから指定して意味のある見出しを付けることで結果をカスタマイズします。 [カスタマイズ] を選択した場合、ユーザーが JSON、CSV、GeoJSON、ArcGIS アイテムにエクスポートするときに、表示フィールドとして指定したか見出しに含めたフィールドのみがエクスポートされます。
- [デフォルトで展開] - すべての結果ノードをデフォルトで展開するには、このボックスをオンにします。
- [レコードの並べ替え] - 結果リストの並べ替え基準となるフィールドを構成します。
- [配置スタイル] - [縦]、[横]、または [アイコン] を選択して、ウィジェット内のクエリのスタイルをカスタマイズします。
- [結果のスタイル] - クエリ結果を単一ページまたは複数ページ上で、横向きまたは縦向きに整理します。
- [1 ページのレコード数] ([ページング スタイル] で [複数ページ] を選択している場合に使用可能) - 1 ページあたりに表示されるレコードの数を定義します。 この数値には、10 以上 1,000 未満を指定できます。 実行時に、ユーザーはドロップダウン メニューを使用するか数値を入力することで、1 ページあたりに表示する結果の数を選択できます。 ドロップダウン メニューには、定義した数の 100%、50%、および 33% の値が設定されています。
注意:
クエリ ウィジェットには、[データ] タブでフィーチャ レイヤーに設定した最大レコード数の制限が適用されます。
- [1 ページのレコード数] ([ページング スタイル] で [複数ページ] を選択している場合に使用可能) - 1 ページあたりに表示されるレコードの数を定義します。 この数値には、10 以上 1,000 未満を指定できます。 実行時に、ユーザーはドロップダウン メニューを使用するか数値を入力することで、1 ページあたりに表示する結果の数を選択できます。 ドロップダウン メニューには、定義した数の 100%、50%、および 33% の値が設定されています。
操作オプション
クエリ ウィジェットは、他のウィジェットでも使用できる出力データ ソースを生成します。 同じ出力データ ソースを使用して、追加ウィジェットを操作するには、アクションを追加します。 たとえば、マップはクエリ結果を自動的に表示し、フィーチャにズームできます。 クエリ ウィジェットの設定の [アクション] タブで、[作成されたレコード] トリガーを追加し、ターゲット マップを選択して、[マップ上に表示] と [ズーム] のアクションを追加します。
クエリ結果がリストに表示されます。 リスト内のアイテムとマップ上の対応するフィーチャを選択するには、クエリ ウィジェットに [レコード選択の変更] トリガーを追加します。 ターゲット フレームワークを選択し、[データ レコードの選択] アクションを追加して、マップのフィーチャ レイヤーと、トリガーとアクション データ間の接続をバインドするフィールドを構成します。 [ズーム] アクションを追加して、選択したフィーチャにマップをズームすることもできます。