クエリ レイヤによる問い合わせ | フィードバック E-mail で送信 印刷

ArcGIS Explorer のクエリ レイヤは、指定した条件に基づいてマップ レイヤ内でデータをフィルタリングする機能です。クエリを作成し、適切な条件を選択することにより、関心のあるデータだけをマップに表示することができます。たとえば、世界中の都市が含まれるジオデータベース レイヤを追加したが、マップに表示したいのは人口が 100 万人を超える都市だけであるとします。この場合は、[検索条件設定] を使用してクエリを作成し、新しいクエリ レイヤを追加することができます。元のデータソースは変更されず、マップに描画される情報の量と種類を制御することになります。必要なデータに望まれる効果が得られるまで、クエリ レイヤはコンテンツ ウィンドウ内で簡単に削除、移動、グループ化することができます。クエリ レイヤを ArcGIS Explorer の解析ツールへの入力として使用したり、反対に解析ツールの結果に基づいてクエリ レイヤを作成したりすることもできます。

##### 検索条件設定を開く

[検索条件設定] を開くには、対象とするレイヤをコンテンツ ウィンドウで選択してから、リボンの [ツール] タブを選択し、[検索] ボタンをクリックします。選択できるレイヤは、ポイント レイヤ（）、ライン レイヤ（）、ポリゴン レイヤ（）、マップ サービス レイヤ（）のいずれかです。ArcGIS レイヤおよびレイヤ パッケージ（ のシンボルで表示）は、関係のある情報を表示するために公開者が特別に作成したものであるため、これ以上クエリを適用することはできません。

##### クエリ レイヤの作成

ArcGIS Explorer のクエリ レイヤは、標準的な SQL（Structured Query Language）のパターンに従います。選択したレイヤに含まれている、[検索条件設定] に指定した条件を満たすすべてのフィーチャが、クエリによって表示されます。クエリの最初の部分（「SELECT * FROM」つまり「すべて選択」）は、すでに ArcGIS Explorer によって入力されています。レイヤを選択（この例では「Mountains」）することにより、このクエリを適用するレイヤを選択したことになり、ArcGIS Explorer によって「SELECT * FROM Mountains WHERE...」が入力されます。WHERE 句とも呼ばれるこのコマンドに続く条件を、[検索条件設定] に指定します。

ステップ 1:フィールドの選択

[検索条件設定] が開くと、すでにレイヤのコンテンツが調べられ、属性フィールドが左側に一覧表示されていることがわかります。クエリの作成を開始するには、次の例にある「"Type"」フィールドのような属性フィールド名を 1 つ選択する必要があります。選択すると、選択したフィールド名が、ダイアログの下半分にあるクエリ プレビュー ボックスに表示されます。さらにオプションを選択するたびに、ここに表示されるクエリの残りの部分が少しずつ増えていきます。クエリの一部を削除したり、コピーして貼り付けたりなど、必要に応じてプレビュー ボックスのクエリを直接編集することもできます。

ステップ 2:演算子の選択

次に、ダイアログ中央のボタンを使用して、適切なクエリ演算子を挿入します。たとえば、等号であれば [=] ボタン、大なりであれば [>] ボタンをクリックします。作成中のクエリのクエリ プレビュー ボックスには、「"Type" =」のように表示されます。

ステップ 3:値の入力

クエリを完了するための適切な値を選択するために、ArcGIS Explorer には選択したフィールドで個別の値を検索する機能があります。この検索を開始するには、[個別値を取得] ボタンをクリックします。個別値の検索が終了すると、上のリストにそれぞれの個別値が表示されます。値をクエリに追加するには、その値をリストで選択する必要があります。検索に追加したい値がわかっている場合は、サンプル値のリストの上にあるテキスト ボックスに値を入力し、[使用] をクリックしてクエリ プレビューに追加します。これで、現在のクエリは「"Type" = 'Corbett'」のようになります。

ステップ 4:クエリのテスト

クエリが完成したら、[テスト] をクリックして、クエリが有効であることを確認する必要があります。クエリで多くの結果が返される可能性があります。その場合は、一致するフィーチャが 100 個以上見つかったとするメッセージがダイアログに表示され、クエリの条件の変更を検討する必要があることを示します。

ステップ 5:クエリの適用

最後に [OK] をクリックして、選択したレイヤにクエリを適用し、マップを更新します。クエリは新しいレイヤとしてマップに表示され、コンテンツ ウィンドウの上部にも表示されます。選択したレイヤと同じ名前が付けられ、クエリの文字列は括弧に囲まれて、たとえば「Cities ("Population" >= 1000000)」のような形で追加されています。このため、クエリの結果を容易に特定することができます。この結果については、名前を変更する、フォルダに移動する、コンテンツ ウィンドウの別の場所へドラッグする、あるいは単にマップから削除するなどの操作が可能です。

##### クエリの構文

クエリを作成するときに従う必要があるガイドラインを以下に示します。

文字列値を検索する場合

- 文字列は必ず一重引用符で囲む必要があります。
  たとえば、「"Name" = 'Ben Nevis'」と指定すると、「Ben Nevis」という名前の山だけが返されます。

- LIKE 演算子を（= 演算子の代わりに）使用して、部分文字列検索を作成することができます。
  たとえば、「"Name" LIKE 'Ben%'」と指定すると、名前が「Ben」で始まるスコットランドの 46 の山だけが返されます。

  注意:文字列内でワイルドカード文字を = 演算子と共に使用すると、ワイルドカードとしてではなく、文字列の一部として処理されます。

- 大なり（>）、小なり（<）、以上（>=）、以下（<=）の各演算子を使用して、アルファベット順に基づいて文字列値を選択することができます。
  たとえば、「"Name" > 'T'」と指定すると、名前が T よりも後のアルファベット（Z が最後）で始まるスコットランドの 20 の山が返されます。

数値を検索する場合

- 数字のクエリでは、等号（=）、不等号（<>）、大なり（>）、小なり（<）、以上（>=）、以下（<=）、BETWEEN の各演算子を使用することができます。
  たとえば、「"POPULATION" >= 1000000」と指定すると、人口が 100 万人以上のすべての都市が返されます。

  注意:地域の設定にかかわらず、数値は常にピリオド（.）を小数の区切りとして表示されます。式の中でコンマ（,）を小数や千の位の区切りとして使用することはできません。

##### さらに高度なクエリの作成

ほとんどの一般的な演算子は [検索条件設定] で不自由なく提供されますが、独自の SQL ステートメントをクエリ プレビュー ボックスに直接記述することもできます。この場合は、追加の SQL 演算子を使用したり、クエリ文字列の各部分が適用される順序を制御したり（「演算子の優先順位」と呼びます）するだけでなく、算術演算子（+、-、*、/）を使用して数値フィールド間や数字間で計算を行うこともできます。

個々の部分を組み合わせて複合クエリを作成し、さらに高度なクエリにすることができます。たとえば、「Munro」という名前のすべての山と、「Corbett」という名前のすべての山を表示したいとします。このためには、初めに「Munro」という値に基づくクエリ レイヤを作成してから、この新しいレイヤを選択して「Corbett」という値で 2 つ目のクエリ レイヤを作成します。このクエリをさらに迅速に作成する方法としては、1 つ目の部分を「"Type" = 'Munro'」と作成し、適切な論理演算子（この場合は OR）を追加して、最後にクエリの 2 つ目の部分である「"Type" = 'Corbett'」を追加します。全体としては「"Type" = 'Munro' OR "Type" = 'Corbett'」のようになります。