クエリ レイヤの作成
クエリ レイヤの作成には、ArcMap の [新規クエリ レイヤ] ダイアログ ボックスを使用します。クエリ レイヤを作成する前に、データベースへの接続を確立しておく必要があります。[接続] ドロップダウン リストには、利用可能なデータベース接続が表示されます。
データベースへの接続が確立されると、そのデータベースにあるテーブルとビューのリストがダイアログ ボックスの左側のウィンドウに表示されます。テーブルを 1 つ選択すると、そのテーブルの各列が右側のウィンドウに表示されます。
データベースの各列にはそれぞれデータ タイプが設定されています。ArcGIS では、ほとんどの一般的なデータベース タイプを使用できます。ただし、一部のデータベース タイプはサポートされていません。属性列のタイプに「不明」と表示されている場合は、ArcGIS がサポートしていないデータ タイプであることを示します。クエリを指定するときには、データ タイプが不明の列をすべて除外するか、ArcGIS でサポートされている別のデータ タイプにクエリで変更する必要があります。
ArcGIS がサポートするデータ タイプの詳細については、「ArcGIS でサポートされているデータ タイプ」をご参照ください。
[クエリ] テキスト ボックスに 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 と同じ標準を使用しない空間データベース内のデータである場合に特に重要になります。
ヒント:整合チェック処理時に、ArcGIS はクエリ レイヤの次元、ジオメトリ タイプ、空間参照、SRID、および一意識別子のプロパティを設定します。これらの値は、クエリで返される先頭行に基づいています。これらの設定を変更する必要がある場合は、[高度な設定] ダイアログ ボックスを使用します。[新規クエリ レイヤ] ダイアログ ボックスに高度な設定ページを表示するには、[高度な設定を表示] のチェックボックスをオンにします。高度な設定ページの詳細については、「一意な識別子のフィールドの選択」と「クエリ レイヤの空間参照の定義」をご参照ください。
-
クエリの整合チェックに成功したら、[完了] をクリックして、結果をクエリ レイヤとして ArcMap に追加します。
注意:
ArcMap は、レイヤをマップにドラッグしたときにレイヤの範囲を計算します。多数のフィーチャを含むテーブルを追加する場合は、範囲の計算に時間がかかる場合があります。データの範囲を知っている場合や、範囲の計算を待たずに独自の空間参照の範囲を使用したい場合は、そちらを選択できます。[範囲の計算] ダイアログ ボックスで該当するボタンをクリックします。[範囲の入力] をクリックした場合、テーブル内のすべてのフィーチャを含む有効な範囲を入力する必要があります。