レイヤー ID の割り当て

ArcGIS AllSource では、複数のレイヤー (およびスタンドアロン テーブル) を含むマップを Web レイヤーまたはサービスとして共有することができます。 Web フィーチャ レイヤーマップ イメージ レイヤーWeb タイル レイヤー、またはマップ サービスを共有すると、マップ内のレイヤーが、サービス サブレイヤーになります。 各サブレイヤーは、Web マップまたはアプリケーションで操作または参照できる、一意の数値 ID で識別されます。 たとえば、URL (https://<service-url>/<layerID>) で、サービス サブレイヤーを参照できます。

デフォルトで、共有できる各レイヤーには、[コンテンツ] ウィンドウで、描画順序 (最初のレイヤーが 0 で始まる) に基づく ID が自動的に割り当てられます。 マップから選択レイヤーを共有する場合、その ID は、選択レイヤー (選択レイヤーが含まれるグループ レイヤーを含む) の順序に基づきます。 レイヤーの追加、削除、または並べ替えが行われると、それに従って ID が変化します。

マップが変更されたときに静的なままであるレイヤー ID を手動で割り当てることができます。 これは、[マップ プロパティ] ダイアログ ボックスの [Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] 設定で有効化できます。 この設定を有効化すると、各レイヤーの ID が [レイヤー プロパティ] ダイアログ ボックスに表示されるようになります。このダイアログ ボックスでは公開前に、レイヤー プロパティをカスタマイズできます。

注意:

レイヤー ID を手動で割り当てない場合は、Web レイヤーの共有時に解析ツール エラー 00374 が発生することがあります。

ベスト プラクティスとして、後から Web レイヤーまたはサービスを上書きする場合は、公開前にレイヤー ID を手動で割り当ててください。 そうしないと、Web レイヤーまたはサービスが上書きされる際に、サービス サブレイヤー ID が変わる可能性があり、サービス サブレイヤーを参照している Web アプリケーションが切断されます。 マップ内のレイヤーに ID を手動で割り当てると、Web アプリケーションでのサービス サブレイヤー参照を更新するために、マップ コンテンツを変更する手間を回避できます。 上書きする前に、割り当てられた ID を確認し、ID が既存のサービス サブレイヤー ID と一致することを確認します。

Web レイヤーとサービスの上書きの詳細については、Web フィーチャ レイヤーの上書きマップ イメージ レイヤーの上書き、およびマップ サービスの上書きをご参照ください。

静的な ID を使用してレイヤーとスタンドアロン テーブルを作成

静的な ID を使用して、レイヤーとスタンドアロン テーブルを作成するには、以下の手順に従います。

  1. [コンテンツ] ウィンドウでマップを右クリックし、[プロパティ] プロパティ をクリックします。
  2. [マップ プロパティ] ダイアログ ボックスの [一般] タブで、[Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] をオンにし、[OK] をクリックします。

    マップの各レイヤーとスタンドアロン テーブルに、連番の ID が割り当てられます。

  3. あるいは、マップ内のレイヤーとスタンドアロン テーブルにカスタム ID を割り当てることもできます。
    1. [コンテンツ] ウィンドウで、レイヤーまたはスタンドアロン テーブルを右クリックし、[プロパティ] プロパティ をクリックします。
    2. [レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスの [一般] タブの [レイヤー ID] または [テーブル ID] テキスト ボックスにカスタム整数 ID を入力します。

      ヒント:

      10 の倍数 (10、20、30 など) でレイヤーに連番を割り当てるように、ID を割り当てる場合は、意図的である必要があります。 これにより、後からレイヤーを追加するためのスペースが得られます。 たとえば、既存のレイヤー間にレイヤーを追加して、10 の倍数の間にある ID (15、25、35 など) を割り当てることができます。

    3. 必要に応じ、各レイヤーやスタンドアロン テーブルに上記の 2 ステップを繰り返します。
  4. マップを Web フィーチャ レイヤーマップ イメージ レイヤー、またはマップ サービスとして共有します。

    マップ内のレイヤーおよびスタンドアロン テーブルは静的な ID を持っているため、Web レイヤーまたはサービスが後から上書きされても、クライアント アプリケーションを更新する必要はありません。

Web レイヤー共有時の割り当てられている ID の確認

Web レイヤーを共有または上書きする前に、マップ内のレイヤーおよびスタンドアロン テーブルに割り当てられている ID を確認します。

  1. [Web レイヤーとして共有] ウィンドウで、[コンテンツ] タブをクリックします。

    新しい Web レイヤーと、ID が割り当てられているサブレイヤーがウィンドウに表示されます。 各サブレイヤーの ID を確認します。 Web レイヤーを上書きする場合は、各レイヤーまたはスタンドアロン テーブルの ID が、既存のサービス サブレイヤー ID と一致することを確認します。

    新しい Web レイヤーとサブレイヤーおよび割り当てられているレイヤー ID とテーブル ID のリスト
    この例では、マップ イメージ レイヤーは、関連する Web フィーチャ レイヤーと共有されます。 レイヤー ID とテーブル ID が、サブレイヤーに割り当てられます。

    注意:

    割り当てられている ID がウィンドウに表示されない場合、[マップ プロパティ] ダイアログ ボックスで、[Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] オプションが有効化されていることを確認します。

    ベクター タイル レイヤーは、サービス サブレイヤー URL によって参照することはできないため、ID は表示されません。サブレイヤーが 1 つしかないため、必ず 0 に設定される Web シーン レイヤーにも、ID は表示されません。

  2. ID を変更するには、レイヤーまたはスタンドアロン テーブルの横の番号をクリックします。

    [レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスが表示されます。

  3. [一般] タブの [レイヤー ID] または [テーブル ID] テキスト ボックスにカスタム整数 ID を入力し、[OK] をクリックします。

    割り当てられている ID が、[Web レイヤーとして共有] ウィンドウで更新されます。

リレートへの一意の ID の割り当て

レイヤー (またはテーブル) がリレートに関与し、サービス サブレイヤーとして共有されている場合は、各フィーチャクラスとテーブルの間のリレーションシップは、サービス レベルで異なる一意の ID で表される必要があります。 これによって、マップまたはジオデータベースに対して変更が行われた後に、マップまたはフィーチャ サービスによる ID の変更を防ぎます。

一意の ID をリレートに割り当てるには、レイヤー、テーブル、属性リレーションシップ クラス (該当する場合) をマップに追加する必要があります。 マップに存在しないと、サービスは、レイヤーとテーブルの間のリレーションシップを表示できません。

一意の ID を確認して割り当てるには、レイヤーまたはテーブルのプロパティで、[リレート] タブを使用します。 以下の手順に従います。

  1. 静的な ID を使用してレイヤーとスタンドアロン テーブルを作成の手順 1 と 2 を実行して、マップで一意の ID を割り当てられるようにします。
  2. [コンテンツ] ウィンドウでレイヤーまたはテーブルを右クリックし、[プロパティ] をクリックします。
  3. [レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスの [リレート] タブで、リレートを展開します。
  4. [Web レイヤーを共有するためのリレート ID] セクションを展開して、すべてのリレーションシップを表示し、[リレーションシップ ID] テキスト ボックスにカスタム整数 ID を入力します。