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 を使用して、レイヤーとスタンドアロン テーブルを作成するには、以下の手順に従います。
- [コンテンツ] ウィンドウでマップを右クリックし、[プロパティ]
をクリックします。
- [マップ プロパティ] ダイアログ ボックスの [一般] タブで、[Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] をオンにし、[OK] をクリックします。
マップの各レイヤーとスタンドアロン テーブルに、連番の ID が割り当てられます。
- あるいは、マップ内のレイヤーとスタンドアロン テーブルに、カスタム ID を割り当てることもできます。
- [コンテンツ] ウィンドウで、レイヤーまたはスタンドアロン テーブルを右クリックし、[プロパティ]
をクリックします。
- [レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスの [一般] タブの [レイヤー ID] または [テーブル ID] テキスト ボックスに、カスタム整数 ID を入力します。
ヒント:
10 の倍数 (10、20、30 など) でレイヤーに連番を割り当てるように、ID を割り当てる場合は、意図的である必要があります。 これにより、後からレイヤーを追加するためのスペースが得られます。 たとえば、既存のレイヤー間にレイヤーを追加して、10 の倍数の間にある ID (15、25、35 など) を割り当てることができます。
- 必要に応じて、各レイヤーやスタンドアロン テーブルに、上記の 2 ステップを繰り返します。
- [コンテンツ] ウィンドウで、レイヤーまたはスタンドアロン テーブルを右クリックし、[プロパティ]
- マップを Web フィーチャ レイヤー、マップ イメージ レイヤー、またはマップ サービスとして共有します。
マップ内のレイヤーおよびスタンドアロン テーブルは静的な ID を持っているため、Web レイヤーまたはサービスが後から上書きされても、クライアント アプリケーションを更新する必要はありません。
リレートへの一意の ID の割り当て
レイヤー (またはテーブル) がリレートに関与し、サービス サブレイヤーとして共有されている場合は、各フィーチャクラスとテーブルの間のリレーションシップは、サービス レベルで異なる一意の ID で表される必要があります。 これによって、マップまたはジオデータベースに対して変更が行われた後に、マップまたはフィーチャ サービスによる ID の変更を防ぎます。
注意:
一意の ID をリレートに割り当てるには、レイヤー、テーブル、属性リレーションシップ クラス (該当する場合) をマップに追加する必要があります。 マップに存在しないと、サービスは、レイヤーとテーブルの間のリレーションシップを表示できません。
一意の ID を確認して割り当てるには、レイヤーまたはテーブルのプロパティで、[リレート] タブを使用します。 以下の手順に従います。
- レイヤーまたはテーブルが、すでにリレートに属していることを確認します。
- [コンテンツ] ウィンドウでマップを右クリックし、[プロパティ]
をクリックします。 [一般] タブで、[Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] をオンにし、[OK] をクリックします。
- [コンテンツ] ウィンドウで、レイヤーまたはテーブルを右クリックし、[プロパティ] をクリックします。
- [レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスの [リレート] タブで、リレートを展開します。
- [Web レイヤーを共有するためのリレート ID] セクションを展開して、すべてのリレーションシップを表示し、[リレーションシップ ID] テキスト ボックスに、カスタム整数 ID を入力します。
Web レイヤー共有時の割り当てられている ID の確認
Web レイヤーを共有する前に、マップ内のレイヤーおよびスタンドアロン テーブルに割り当てられている ID を確認します。 Web レイヤーを上書きする場合は、「Web レイヤーを上書きする際の ID の比較」をご参照ください。
- [Web レイヤーとして共有] ウィンドウで、[コンテンツ] タブをクリックします。
新しい Web レイヤーと、ID が割り当てられているサブレイヤーがウィンドウに表示されます。 各サブレイヤーの ID を確認します。
この例では、マップ イメージ レイヤーは、関連する Web フィーチャ レイヤーと共有されます。 レイヤー ID とテーブル ID が、サブレイヤーに割り当てられます。 注意:
割り当てられている ID がウィンドウに表示されない場合、[マップ プロパティ] ダイアログ ボックスで、[Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] オプションが有効化されていることを確認します。
ベクター タイル レイヤーは、サービス サブレイヤー URL によって参照することはできないため、ID は表示されません。サブレイヤーが 1 つしかないため、必ず 0 に設定される Web シーン レイヤーにも、ID は表示されません。
- ID を変更するには、レイヤーまたはスタンドアロン テーブルの横の番号をクリックします。
[レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスが表示されます。
- [一般] タブの [レイヤー ID] または [テーブル ID] テキスト ボックスに、カスタム整数 ID を入力し、[OK] をクリックします。
割り当てられている ID が、[Web レイヤーとして共有] ウィンドウで更新されます。
Web レイヤーを上書きする際の ID の比較
Web レイヤーを上書きする前に、マップで割り当てられた ID と既存の Web レイヤーのサブレイヤー ID を比較します。
- [Web レイヤーの上書き] ウィンドウの [共有の完了] の下にある [比較]
をクリックし、現在のマップ内の ID と上書きする既存の Web レイヤー内の ID の相違を確認します。
注意:
[比較] ボタン
が無効になっている場合は、[マップ プロパティ] ダイアログ ボックスで [Web レイヤーを共有できるよう一意の数値 ID の割り当てを許可] オプションが有効になっていることを確認します。
マップと既存の Web レイヤーの間で ID とレイヤー名の組み合わせが一致しないなどの相違が見つかった場合は、[コンテンツ] の下に警告が表示されます。 ID の横にある警告シンボル
の上にポインターを置くと、警告に関する情報を表示できます。 次の表に、表示される可能性がある警告の説明を示します。
警告 説明 推奨される解決策 レイヤー ID はマップに存在しません。
現在のマップ内に、既存のサービス サブレイヤー ID を持つレイヤーが見つかりませんでした。
レイヤーが現在のマップ内に存在することを確認し、割り当てられている ID を既存のサービス サブレイヤー ID に一致するよう変更します。
ID のレイヤー名が変更されました。
現在のマップ内のレイヤーに、既存のサービス サブレイヤーと同じ ID が付与されていますが、名前が異なっています。
レイヤー名を既存のサービス サブレイヤー名に一致するよう変更します。 あるいは、マップ内の別のレイヤーに同じ ID が付与されている場合は、代わりに一意の ID を割り当てます。
この例では、既存のサービスのテーブルが ID 2 であるにもかかわらず、マップ内のスタンドアロン テーブルに ID 4 が割り当てられているため、警告が表示されます。 必要に応じて、現在のマップで割り当てられた ID またはレイヤー名を変更して、相違を解消できます。
- ID を変更するには、[現在のマップ] の下で、レイヤーまたはスタンドアロン テーブルの横にある数字をクリックします。
[レイヤー プロパティ] または [スタンドアロン テーブル プロパティ] ダイアログ ボックスが表示されます。
- [一般] タブの [レイヤー ID] または [テーブル ID] テキスト ボックスに、カスタム整数 ID を入力し、[OK] をクリックします。
割り当てられている ID が、[Web レイヤーの上書き] ウィンドウで更新されます。
- マップで目的のレイヤー ID が割り当てられていることを確認した後、Web レイヤーを上書きしても問題ないと判断したら [公開] をクリックします。