レイヤの検索

エンド ユーザは、[レイヤのクエリ] ツールを使用して、事前に定義されたクエリに値を入力することによって、マップ サービス レイヤからフィーチャを検索できます。このクエリは、Application Builder 内でツールを構成することによって定義します。Application Builder では、多数のフィールドを検索する複雑なクエリを作成できます。クエリの各条件をクエリ式にカプセル化し、論理演算子「and」および「or」を使用して、それらの式をグループ化して結合できます。式ごとにツールを構成して、任意の値を入力することをエンド ユーザに許可したり、入力値を定義済みのリストに制限したり、入力値を全く変更できないようにしたりできます。ドメインを使用するフィールドの場合、各値はドメイン内の値に自動的に制限されます。このツールでは非常に柔軟な構成が可能ですが、検索値を定義するときに表示されるダイアログはシンプルです。このダイアログは、ラベル、テキスト ボックス、およびドロップダウン メニューで構成されています。

開発者向けには、ツールのフル ソース コードが ArcGIS Online で提供されており、ビューアの拡張機能を利用した高度なツールの例を確認することができます。この実装は、複雑な構成オプションを設定して Application Builder とシームレスに統合する例を提供し、プログラミングによってクエリを実行してレイヤを追加する方法、アドインをローカライズ可能にする方法などを示します。ソース コードを表示するには、ArcGIS Online からQuery Tool のサンプルをダウンロードして、QueryTool.sln ファイルを開きます。アドインをデバッグするには、サンプルに付属している Deployment and Use Instructions テキスト ファイルに記載の指示に従います。

レイヤのクエリ ツールの構成

[レイヤのクエリ] ツールの構成に必要な手順を、以下に示します。多くのオプションがある構成の各部については、後のセクションで詳細に説明します。

  1. Application Builder の [ツール] タブで、[ツールの追加] をクリックします。[ツールの追加] ダイアログが表示されます。
  2. [クエリ] カテゴリにスクロールし、[レイヤのクエリ] ツールを選択します。

    [レイヤのクエリ] ツールの選択

  3. [次へ] をクリックします。
  4. ツールのツールバー、ラベル、ツールチップ、およびアイコンを指定し、[次へ] をクリックします。多くの場合、[レイヤのクエリ] ツールのデフォルトのツールバーとアイコンは適切ですが、ラベルとツールチップについては、ツールが実行するクエリを反映するように更新することをお勧めします。たとえば、人口が特定の数よりも多い米国の都市を検索するようにツールを構成する場合、適切なラベルは「米国の都市を検索」になり、ツールチップは「人口に基づいて米国の都市を検索します」になります。
  5. 検索対象のレイヤの URL を指定して、[接続] をクリックします。マップ サービス自体ではなく、マップ サービス内のレイヤの URL を指定する必要があることに注意してください。

    [レイヤのクエリ] ツール構成ウィザード - レイヤの URL の定義

  6. レイヤへの接続が確立されたら、[次へ] をクリックします。
  7. フィールド、演算子、および入力方法を含めて、レイヤ内のフィーチャを検索する式を指定します。詳細については、下の「クエリ式の定義」のセクションをご参照ください。
  8. クエリ式を定義したら、[次へ] をクリックします。
  9. 定義したすべてのクエリ式を示すページが表示されます。この時点では 1 つしか定義していないため、表示されるのは 1 つのみです。追加のクエリ式を定義するには、[新規追加] をクリックします。定義済みの式の横に表示されているボタンを使用して、それらの式を変更および削除できます。複数の式が存在する場合、論理演算子を選択してグループ化することによって、各式の結合方法を操作できます。詳細については、下の「クエリ式の結合」のセクションをご参照ください。クエリ式の定義が完了したら、[次へ] をクリックします。
  10. 表示されたページ上で、検索結果に含めるフィールドを指定し、検索結果の表示方法に関するその他のオプションを確認ます。[次へ] をクリックします。
  11. ウィザードの最後のページでは、[レイヤのクエリ] ツールのエンド ユーザに表示されるダイアログの外観を定義します。このページの上部で、ダイアログの上部に表示されるタイトルを指定できます。[パラメータの外観] セクションで、各クエリ式のラベルを定義できます。または、クエリ式にデフォルト値が存在する場合、その式の横にある [表示] チェックボックスをオフにして、式をエンド ユーザから完全に非表示にできます。これには、クエリを実行したときに式のデフォルト値が必ず使用されるという効果があります。
  12. ダイアログの外観の指定が完了したら、[OK] をクリックします。[レイヤのクエリ] ツールが、指定したツールバーに追加されます。

クエリ式の定義

[レイヤのクエリ] ツールでは、クエリ式は、検索対象のレイヤ内のフィーチャをチェックする条件を定義します。フィーチャは、この条件を満たす場合、取得されてマップ上に表示されます。各クエリ式は、以下の 3 つの部分で構成されます。

  • フィールド - レイヤ内の属性を定義します。この属性の値が、クエリ式で定義された条件を満たすかどうかチェックされます。
  • 演算子 - 検索対象となる、入力値とレイヤ内の値の間の関係を指定します。たとえば、大なり(>)演算子は、入力値よりも大きな値を持つフィーチャを検索することを指定します。
  • 入力方法 - エンド ユーザが入力値を定義できる方法を指定します。[値の入力] という入力方法を選択した場合、クエリ式の値を入力するテキスト ボックスがエンド ユーザに表示されます。代わりに、[リストから値を選択] という入力方法を指定した場合、事前に定義された値を含むドロップダウン メニューが表示され、エンド ユーザはそれらの値から選択できます。

下の画像は、入力値よりも大きな人口を持つフィーチャを検索するクエリ式を示しています。デフォルトの入力値として、100,000 を指定しています。

[レイヤのクエリ] ツール構成ウィザード - クエリ式の定義

クエリ式の結合

[レイヤのクエリ] ツールは、1 つのツール内に複数のクエリ式を含める機能を備えています。目的のフィーチャを検索するには、多くの場合、複数の式を指定することが必要になります。同時に、複数の式の結合方法を検討することも必要になります。[レイヤのクエリ] ツールを構成するときに、以下に示すドロップダウン メニューから、複数の式を結合する論理演算子を選択できます。

[レイヤのクエリ] ツール構成ウィザード - クエリ式を結合するための論理演算子の指定

[and] を選択した場合、フィーチャが検索結果に含まれるには 2 つのクエリ式を満たす必要があることを意味します。[or] を指定した場合、いずれかの条件を満たすフィーチャが検索されます。

複数の式をグループ化して、各式が同時に評価されるように強制することもできます。複数のクエリ式を結合する場合、クエリの目的の評価を確実に行うために、グループ化が必要になることがあります。以下の一連の式を検討します。

[レイヤのクエリ] ツール構成ウィザード - 複数のクエリ式

上に示すように式を結合すると、クエリは、(1)1 番目の入力値よりも大きな人口を持ち、(2)2 番目の入力値よりも小さな人口を持ち、かつ(3)特定のクラス(たとえば、都市、町など)を持つフィーチャ、または、これらの条件を満たさず、CAPITAL の入力値に一致するフィーチャを検索します。この動作が目的の動作ではなく、代わりに、人口の条件と、残りの 2 つの条件のうちのいずれか 1 つの条件の両方を満たすフィーチャを検索することが目的であるとします。その場合、最後の 2 つの条件をグループ化して、それらの条件を同時に評価することを指定する必要があります。これを行うには、単にグループ化する式をクリックして選択し、表示された [選択項目のグループ化] ボタンをクリックします。

[レイヤのクエリ] ツール構成ウィザード - グループ化するクエリ式の選択

これを行うと、グループ化されたクエリ式の横に、グループ化されていることを示す以下のシンボルが表示されます。

式をグループ化した後で、そのグループを削除するには、グループに含まれる式を選択し、上の画像に示す [選択項目のグループ解除] ボタンをクリックします。

レイヤのクエリ ツールの使用

[レイヤのクエリ] ツールを構成したら、それを使用するのは非常に簡単です。使用手順は次のとおりです。

  1. ツールバーの [レイヤのクエリ] ボタンをクリックします。ツールを含むツールバーは、ツールの構成の一部で定義されます。
  2. 入力パラメータを非表示にしてツールを構成した場合、クエリは、構成時に指定したデフォルト値を使用して実行されます。そうでない場合、ダイアログが表示されて、エンド ユーザはクエリの入力値を定義できます。クエリ式を前のセクションに従って定義した場合、以下の画像に示すダイアログが表示されます。なお、正確な外観は、構成時に指定したダイアログのタイトル、ラベル、およびパラメータの表示設定によって変わります。

    [レイヤのクエリ] ツール - 検索値を入力するダイアログ

  3. 目的の値を入力して、[実行] をクリックします。検索が完了すると、マップ上に以下の検索結果が表示されます。

  4. マップから検索結果を削除するには、ダイアログを閉じるだけです。または、ダイアログを閉じた後でマップ上に検索結果を保持するには、[マップ上に結果を保持] チェックボックスをオンにしてからダイアログを閉じます。
:

1/23/2014