クエリ レイヤーの変更

クエリ レイヤーをマップに追加した後に、SQL クエリ、ID、または空間プロパティの変更が必要となる場合があります。 これは、クエリ レイヤーの [レイヤー プロパティ] ダイアログ ボックスの [ソース] タブから [クエリ レイヤーの編集] ダイアログ ボックスを開いて行います。

ヒント:

以下では、[クエリ レイヤーの編集] ダイアログ ボックスで設定したクエリ レイヤー固有のプロパティを変更する手順について説明します。 その他のレイヤー プロパティの変更は、[レイヤー プロパティ] ダイアログ ボックスで行うことができます。 詳細については、「レイヤー プロパティの設定」をご参照ください。

データベースに格納されている空間テーブルをマップに追加すると、テーブルの最初の行で定義されたデフォルトのプロパティを持つクエリ レイヤーが作成されます。 ただし、これらのプロパティは、特定のワークフローで必要なものでない可能性があります。 たとえば、都市のコレクションを含む空間テーブルは、データベース内でポイントとポリゴンの両方のジオメトリ タイプとしてモデリングすることができます。 ただし、ArcGIS のフィーチャ レイヤーは 1 つのジオメトリ タイプしか持つことができないため、テーブルの最初の行がデフォルトのジオメトリ タイプ プロパティを表します。 この例では、都市データを含む空間テーブルの最初の行がポイント ジオメトリを返す場合、都市のクエリ レイヤーはポイント フィーチャのみを表示します。 都市テーブルに格納されているポリゴン フィーチャを表示したい場合は、[クエリ レイヤーの編集] ダイアログ ボックスでクエリ レイヤーのプロパティを変更し、ジオメトリ タイプをポリゴンに変更します。

クエリ レイヤーの次元、空間参照、SRID、一意識別子フィールドなどの他のプロパティも、空間テーブルから返される最初の行で決定されます。 ジオメトリ タイプと同様に、[クエリ レイヤーの編集] ダイアログ ボックスで [次へ] をクリックして、これらのプロパティにアクセスして値を変更することができます。

クエリ レイヤーの次元を変更すると、その変更内容に合わせて、表示されたフィーチャのジオメトリ フィールドの値が変更されます。

たとえば、レイヤーがデータベースの x、y、z、および m 次元で定義されている場合に、クエリ レイヤーを編集して [M 値を含む座標 (ルート データ格納に使用)] オプションと [Z 値を含む座標 (3D データ格納に使用)] オプションを [空間プロパティ] の下でオフにした場合、レイヤー内のすべてのフィーチャが x 値と y 値のみを表示するようになります。 または、クエリ レイヤーを編集して [M 値を含む座標 (ルート データ格納に使用)] オプションと [Z 値を含む座標 (3D データ格納に使用)] オプションをオンにすると、すべてのフィーチャが x 値、y 値、z 値、m 値を表示するようになります。 これらのオプションをオンにして、フィーチャがデータベースに z 値または m 値を持たない場合、これらの値はクエリ レイヤーに NULL として表示されます。

[クエリ レイヤーの編集] ダイアログ ボックスの [空間プロパティ] でクエリ レイヤーの空間参照または SRID を変更すると、ArcGIS AllSource に表示されるフィーチャは、その空間参照または SRID 値に基づいてフィルタリングされます。

注意:

変更できるプロパティは、クエリ レイヤーのソースによって異なります。

クエリ レイヤーの定義とプロパティを変更するには、次の手順を実行します。

  1. クエリ レイヤーを含むマップを ArcGIS AllSource で開きます。
  2. [コンテンツ] ウィンドウでレイヤーを右クリックし、ショートカット メニューから [プロパティ] プロパティ を選択します。
  3. [レイヤー プロパティ] ダイアログ ボックスの [ソース] タブをクリックします。

    [データ ソース] テーブルに [クエリ] というプロパティが割り当てられ、そのレイヤーの現在の SQL クエリが表示されます。

  4. [クエリの編集] ボタンをクリックします。

    ソース タブとクエリの編集ボタンがあるレイヤー プロパティ ダイアログ ボックス

    [クエリ レイヤーの編集] ダイアログ ボックスが表示されます。

  5. 最初のウィンドウで SQL クエリを変更します。 [検証] をクリックして、SQL が正しいことを確認します。

    クエリ レイヤーのマテリアライズド ビューがすでに定義済みの場合は、SQL クエリを変更して検証すると、そのビューが再作成されます。

    注意:

    ArcGIS AllSource では、次のデータ タイプがサポートされるようになりました。

    • Big Integer
    • Date Only
    • Time Only
    • Timestamp Offset
    クエリ レイヤーを作成または変更する際に、新しいデータ タイプがソース テーブルに存在する場合、それらは新しいデータ タイプとして認識されます。 ArcGIS AllSource 3.1 以前で使用されていたデータ タイプ マッピングを保持するには、ArcGIS AllSource インストールで [マップとシーン] 設定を構成します。

    新しいデータ タイプのサポートは、データベースおよびクラウド データ ウェアハウスのプラットフォームによって異なります。 詳細については、「ArcGIS でサポートされているデータベースのデータ タイプ」をご参照ください。

  6. [クエリ レイヤーの編集] ダイアログ ボックスの次のウィンドウに進む必要があります。 ただし、そのウィンドウで入力する必要がある内容は、[次へ] をクリックする前に選択した次の 2 つのオプションによって変わります。
    • [ArcGIS Pro でレイヤーの空間プロパティを検索] - このオプションを選択した場合、クエリ レイヤーを作成したときに設定した既存の一意の ID と空間プロパティは設定されたままですが、それらは変更できます。 このオプションは、ほとんどの元々の設定は十分だが、一意の ID フィールドやいくつかの空間プロパティのみを変更する必要がある場合に使用します。
    • [レイヤーの空間プロパティの定義] - このオプションを選択した場合、既存の一意の ID フィールド定義は維持されますが (変更できます)、すべての既存の空間プロパティ設定とレイヤー範囲は削除され、新しい空間プロパティを指定する必要があります。 このオプションは、レイヤー範囲の座標やデータの空間参照など、クエリ レイヤーに割り当てる特定の値がわかっている場合にのみ使用します。
  7. 上記のいずれかのオプションを選択して、[次へ] をクリックします。
  8. [ArcGIS Pro でレイヤーの空間プロパティを検索] オプションを選択した場合、一意識別子に使用するフィールド (複数可) を変更するか、レイヤーに別の空間プロパティを指定して、[完了] をクリックします。

    [クエリ レイヤーの編集] ダイアログ ボックスで [完了] をクリックすると、[レイヤー プロパティ] ダイアログ ボックスに戻ります。

    レイヤー範囲は、クエリ レイヤー定義に加えた変更に基づいて自動的に再計算されます。 ただし、クエリ レイヤー定義の変更と範囲の変更は、[レイヤー プロパティ] ダイアログ ボックスで [適用] または [OK] をクリックするまで保存されません。 前のクエリ レイヤー定義に戻すには、[レイヤー プロパティ] ダイアログ ボックスで [キャンセル] をクリックします。

  9. [レイヤーの空間プロパティの定義] を選択した場合は、次の手順に従います。
    1. 座標値とジオメトリ タイプに基づいて、レイヤーに含めるフィーチャを定義します。
    2. レイヤー内のデータの空間参照を定義します。
    3. 次のいずれかのオプションを選択して、レイヤーの空間範囲を定義します。

      • [範囲の入力] - [次へ] をクリックした後に、範囲に使用する座標を入力する必要があります。 次のように範囲フィールドに値を入力します。
        • [上] - 範囲の北端の座標を入力します。
        • [右] - 範囲の東端の座標を入力します。
        • [下] - 範囲の南端の座標を入力します。
        • [左] - 範囲の西端の座標を入力します。
      • [マップ範囲を使用] - [次へ] をクリックした後に、範囲フィールドには現在のマップ範囲の座標が設定されます。 これらの値は、フィールドに入力することで編集できます。
      • [空間参照の使用] - [次へ] をクリックした後に、範囲フィールドには、レイヤーに定義した空間参照の空間範囲の座標が設定されます。 これらの値は、フィールドに入力することで編集できます。

    4. [完了] をクリックして、[クエリ レイヤーの編集] ダイアログ ボックスを閉じます。

    [クエリ レイヤーの編集] ダイアログ ボックスで [完了] をクリックすると、[レイヤー プロパティ] ダイアログ ボックスに戻ります。 レイヤー範囲の値が更新されます。

    注意:

    クエリ レイヤー定義とレイヤー範囲に加えた変更は、[レイヤー プロパティ] ダイアログ ボックスで [適用] または [OK] をクリックするまで保存されません。 前のクエリ レイヤー定義に戻すには、[レイヤー プロパティ] ダイアログ ボックスで [キャンセル] をクリックします。

関連トピック