クエリ レイヤーの作成には、ArcMap の [新規クエリ レイヤー] ダイアログ ボックスを使用します。クエリ レイヤーを作成する前に、データベースへの接続を確立しておく必要があります。[接続] ドロップダウン リストには、利用可能なデータベース接続が表示されます。
データベースへの接続が確立されると、そのデータベースにあるテーブルとビューのリストがダイアログ ボックスの左側のウィンドウに表示されます。テーブルを 1 つ選択すると、そのテーブルの各列が右側のウィンドウに表示されます。
[クエリ] テキスト ボックスに SQL クエリを指定します。
クエリの構築にあたって [クエリ] テキスト ボックスにテーブル全体を追加する場合は、テーブルをダブルクリックするか、コンテンツ ウィンドウのテーブルを [クエリ] テキスト ボックス内にドラッグします。同様に、テーブル内の特定の列をクエリに追加する場合は、該当する列をダブルクリックするか、[列] ウィンドウから列を [クエリ] テキスト ボックス内にドラッグします。また、特定のクエリを入力することも、外部アプリケーションのクエリをコピーして [クエリ] テキスト ボックスに貼り付けることもできます。
クエリ レイヤーを構築するときは、そのデータベースに固有の SQL 構文を使用する必要があります。一般的な SQL 文は、SELECT * FROM Test.dbo.US_States のようになります。この場合は、US_States テーブルのすべての列が含まれたクエリ レイヤーが作成されます。ArcMap では、アメリカ合衆国全体が表示されます。SQL クエリの構築の詳細については、「クエリ式の構築」をご参照ください。
クエリを作成したら、その整合性をチェックする必要があります。整合チェック中に、ArcGIS はテーブルに返された最初の行に基づいてクエリ レイヤーのプロパティを決定します。
クエリ レイヤーのプロパティは次のようになります。
- 一意識別子フィールド - ArcGIS がレイヤーを一意に識別するために使用する 1 つまたは複数のフィールドです。
- 次元 - レイヤーの座標に、ルート データを格納するための M 値と 3D データを格納するための Z 値が含まれるかどうかを決定します。
- ジオメトリ タイプ - レイヤーがポイント、マルチポイント、ライン、またはポリゴンのいずれであるかを決定します。
- 空間参照 - レイヤーの座標系とその他の関連空間プロパティを表します。
- SRID - レイヤーの空間参照 ID を表し、クエリで空間参照 ID が同じジオメトリだけを返すために使用されます。
[高度な設定を表示] チェックボックスをオンにして [次へ] をクリックすると、クエリ レイヤーの整合チェックを行った後に、これらのプロパティを表示および変更できます。
クエリ レイヤーのプロパティは、データベースから ArcGIS に返された行をフィルター処理するために使用されます。たとえば、テーブル内のジオメトリに複数の SRID が指定されている場合は、クエリ レイヤーに SRID プロパティを設定して、その SRID に一致しないデータベース テーブルの行を ArcMap で表示しないようにすることができます。
- [新規クエリ レイヤー] ダイアログ ボックスの [名前] テキスト ボックスに、作成するクエリ レイヤーの名前を指定します。この名前が ArcMap の [コンテンツ] ウィンドウに表示されます。
- [クエリ] テキスト ボックスに SQL クエリを入力します。
- クエリを作成したら、その整合性をチェックする必要があります。[整合チェック] をクリックすると、クエリの構文が正しく、ArcGIS で利用できるデータを返すものであるか確認できます。整合チェック プロセスでは、データベースに対してクエリを実行し、クエリから返される結果セットが ArcGIS のデータ モデリング標準に従っているかどうかが確認されます。クエリ レイヤーは、整合性が確認されるまで ArcMap に追加されません。
整合チェック ルールとして、次を満たしていることが確認されます。
- 結果セットの持つ空間フィールドは 1 つだけである。
- 結果セットが持つ空間参照は 1 つだけである。
- 結果セットが持つシェープ タイプは 1 つだけである。
- 結果セットに、ArcGIS のサポートしないフィールド タイプは含まれていない。
なんらかの理由で整合チェックに失敗した場合は、エラー メッセージが返されるので、クエリを修正する必要があります。
整合チェックは、対象のデータが ArcGIS と同じ標準を使用しない空間データベース内のデータである場合に特に重要になります。
- クエリの整合チェックに成功したら、[完了] をクリックして、結果をクエリ レイヤーとして ArcMap に追加します。