Web レイヤーの置換 (Replace Web Layer) (サーバー)

サマリー

ポータル内の Web レイヤーのコンテンツを別の Web レイヤーのコンテンツに置き換えます。

使用法

  • ターゲット レイヤーは、置き換えられる Web レイヤーです。 更新レイヤーは、置換 Web レイヤーです。 ターゲット レイヤーと更新レイヤーには、次のタイプの Web レイヤーを指定できます。

    • ベクター タイル パッケージから公開されたベクター タイル レイヤー
    • タイル レイヤー
    • 次のいずれかのソースから公開されたシーン レイヤー
      • ArcGIS Online または ArcGIS Enterprise ポータルでホストされているシーン レイヤー パッケージ
      • フォルダーまたはクラウド データ ストア内の参照シーン キャッシュ

      ボクセル シーン レイヤーを置き換えることはできません。

  • ArcGIS Enterprise ポータルでベクター タイル レイヤーを置き換えるには、10.6 以降のバージョンを使用している必要があります。 タイル レイヤーを置き換えるには、10.8 以降のバージョンを使用している必要があります。 シーン レイヤーを置き換えるには、10.8.1 以降のバージョンを使用している必要があります。

  • ArcGIS Pro のアクティブなポータルは、ターゲット レイヤーおよび更新レイヤーをホストするポータルである必要があります。 ターゲット レイヤーおよび更新レイヤーを所有しているアカウントを使用して、ArcGIS Pro にサイン インする必要があります。

  • ターゲット レイヤーと更新レイヤーは同じタイプである必要があります。 たとえば、ベクター タイル レイヤーをタイル レイヤーに置き換えることはできません。

  • ターゲット レイヤーと更新レイヤーのシーン レイヤー タイプは一致する必要があります。 たとえば、ビルディング シーン レイヤーを 3D オブジェクト シーン レイヤーに置き換えることはできません。

  • Web シーン レイヤーを置き換えるには、ターゲット レイヤーと更新レイヤーが同じソースから公開されている必要があります。 たとえば、シーン レイヤー パッケージから公開された Web シーン レイヤーを、参照シーン キャッシュから公開された Web シーン レイヤーに置き換えることはできません。

  • 参照シーン キャッシュから公開された Web シーン レイヤーを置き換えるには、ターゲット レイヤーと更新レイヤーのシーン サービスが同じサーバーおよびサーバー フォルダーに存在する必要があります。

  • ターゲット レイヤーが更新されると、このレイヤーのコンテンツが置き換えられます。 ターゲット レイヤーのアイテム ID およびサービス URL は変更されません。

  • 置き換えられる Web レイヤーは、上書きされません。 このレイヤーは、新しい名前でポータルにアーカイブされます。 デフォルトでは、アーカイブ レイヤー名は、<レイヤー名>_archive_<タイムスタンプ> になります。 別の名前を割り当てることができますが、その名前は、ポータル内で一意の Web レイヤー名である必要があります。

  • デフォルトでは、アーカイブ レイヤーは更新レイヤーのアイテム ID を使用します。 アーカイブ レイヤーの新しいアイテム ID を指定できます。

  • ターゲット レイヤーのアイテム情報を更新レイヤーのアイテム情報に置き換えることができます。 アイテム情報を置き換えると、概要、説明、タグ、およびサムネイル画像が置き換えられます。 著作権 (帰属) や利用規約などのその他の情報は、置き換えられません。

パラメーター

ラベル説明データ タイプ
ターゲット レイヤー

置き換えられる Web レイヤー。 レイヤーまたはカタログ パスを指定するか、次のいずれかのアイテム ID またはサービス URL を指定します。

  • ベクター タイル パッケージから公開されたベクター タイル レイヤー
  • タイル レイヤー
  • 次のいずれかのソースから公開されたシーン レイヤー
    • シーン レイヤー パッケージ
    • フォルダーまたはクラウド データ ストア内の参照シーン キャッシュ

Vector Tile Layer; Internet Tiled Layer; Scene Layer
アーカイブ レイヤー名

アーカイブ レイヤーに一意の名前。 置き換えられた Web レイヤーは、ポータル内にアーカイブ レイヤーとして残ります。

String
更新レイヤー

置換する Web レイヤー。 レイヤーまたはカタログ パスを指定するか、次のいずれかのアイテム ID またはサービス URL を指定します。

  • ベクター タイル パッケージから公開されたベクター タイル レイヤー
  • タイル レイヤー
  • 次のいずれかのソースから公開されたシーン レイヤー
    • シーン レイヤー パッケージ
    • フォルダーまたはクラウド データ ストア内の参照シーン キャッシュ

Vector Tile Layer; Internet Tiled Layer; Scene Layer
アイテム情報の置換
(オプション)

ターゲット レイヤーのアイテム情報 (サムネイル画像、概要、説明、およびタグ) を置き換えるかどうかを指定します。 いずれのオプションでも、アイテムの著作権 (帰属)、利用規約、および作成元の情報は置き換えられません。

  • オフ - レイヤーが更新された時点で、ターゲット レイヤーのアイテム情報を置き換えません。 これがデフォルトです。
  • オン - ターゲット レイヤーのアイテム情報を更新レイヤーのアイテム情報に置き換えます。
Boolean
アーカイブ レイヤー用の新しいアイテムを作成
(オプション)

アーカイブ レイヤーのアイテムを作成するかどうかを指定します。 このパラメーターは、ArcGIS Online および ArcGIS Enterprise 10.8 以降のポータルでサポートされています。

  • オフ - 更新レイヤーのアイテム ID がアーカイブ レイヤーに使用されます。 ベクター タイル レイヤーおよびタイル レイヤーの場合、これがデフォルトです。
  • オン - アーカイブ レイヤーの新しいアイテム ID が作成されます。 シーン レイヤーの場合、これがデフォルトです。
Boolean

派生した出力

ラベル説明データ タイプ
更新されたターゲット レイヤー

更新された Web レイヤーの URL。

String

arcpy.server.ReplaceWebLayer(target_layer, archive_layer_name, update_layer, {replace_item_info}, {create_new_item})
名前説明データ タイプ
target_layer

置き換えられる Web レイヤー。 レイヤーまたはカタログ パスを指定するか、次のいずれかのアイテム ID またはサービス URL を指定します。

  • ベクター タイル パッケージから公開されたベクター タイル レイヤー
  • タイル レイヤー
  • 次のいずれかのソースから公開されたシーン レイヤー
    • シーン レイヤー パッケージ
    • フォルダーまたはクラウド データ ストア内の参照シーン キャッシュ

Vector Tile Layer; Internet Tiled Layer; Scene Layer
archive_layer_name

アーカイブ レイヤーに一意の名前。 置き換えられた Web レイヤーは、ポータル内にアーカイブ レイヤーとして残ります。

String
update_layer

置換する Web レイヤー。 レイヤーまたはカタログ パスを指定するか、次のいずれかのアイテム ID またはサービス URL を指定します。

  • ベクター タイル パッケージから公開されたベクター タイル レイヤー
  • タイル レイヤー
  • 次のいずれかのソースから公開されたシーン レイヤー
    • シーン レイヤー パッケージ
    • フォルダーまたはクラウド データ ストア内の参照シーン キャッシュ

Vector Tile Layer; Internet Tiled Layer; Scene Layer
replace_item_info
(オプション)

ターゲット レイヤーのアイテム情報 (サムネイル画像、概要、説明、およびタグ) を置き換えるかどうかを指定します。 いずれのオプションでも、アイテムの著作権 (帰属)、利用規約、および作成元の情報は置き換えられません。

  • KEEPレイヤーが更新された時点で、ターゲット レイヤーのアイテム情報を置き換えません。 これがデフォルトです。
  • REPLACEターゲット レイヤーのアイテム情報を更新レイヤーのアイテム情報に置き換えます。
Boolean
create_new_item
(オプション)

アーカイブ レイヤーのアイテムを作成するかどうかを指定します。 このパラメーターは、ArcGIS Online および ArcGIS Enterprise 10.8 以降のポータルでサポートされています。

  • TRUEアーカイブ レイヤーのアイテム ID が作成されます。 シーン レイヤーの場合、これがデフォルトです。
  • FALSE更新レイヤーのアイテム ID がアーカイブ レイヤーに使用されます。 ベクター タイル レイヤーおよびタイル レイヤーの場合、これがデフォルトです。
Boolean

派生した出力

名前説明データ タイプ
updated_target_layer

更新された Web レイヤーの URL。

String

コードのサンプル

ReplaceWebLayer の例 1 (スタンドアロン スクリプト)

次のスクリプトは、入力レイヤーのアイテム ID を使用して Web レイヤーを置き換えます。

import arcpy
import time

# Set local variables
targetLayerID = "42994b1a3e63425aa02bcfa1200683ae"
archiveLayerName = "ReplaceWebLayerExample_archive_" + time.strftime("%Y%m%d")
updateLayerID = "9e1d80c874e040fc88ad06b0cfa01381"
replaceItemInfo = "REPLACE"
createNewItem = "TRUE"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(targetLayerID, archiveLayerName, updateLayerID, 
                             replaceItemInfo, createNewItem)

print("Successfully replaced web layer.")
ReplaceWebLayer の例 2 (スタンドアロン スクリプト)

次のスクリプトは、入力レイヤーのサービス URL を使用して ArcGIS Enterprise で Web レイヤーを置き換えます。

import arcpy
import time

# Set local variables
targetLayer = "https://webadaptorhost.domain.com/webadaptorname/rest/services/Hosted/targetServiceName/VectorTileServer"
archiveLayerName = "targetServiceName_archive_" + time.strftime("%Y%m%d")
updateLayer = "https://webadaptorhost.domain.com/webadaptorname/rest/services/Hosted/updateServiceName/VectorTileServer"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(targetLayer, archiveLayerName, updateLayer)

print("Successfully replaced web layer.")
ReplaceWebLayer の例 3 (スタンドアロン スクリプト)

次のスクリプトは、ベクター タイル レイヤーを公開して置き換えます。

このスクリプトを実行すると、マップの CreateVectorTilePackage 関数を呼び出して、ベクター タイル パッケージが作成されます。 次に、SharePackage 関数で、ベクター タイル パッケージが ArcGIS Online または ArcGIS Enterprise にアップロードされ、ベクター タイル レイヤーとして公開されます。 最後に、ReplaceWebLayer 関数で、アイテム ID を使用して、ポータル内の既存の Web レイヤーのコンテンツが新しい Web レイヤーのコンテンツに置き換えられます。 置き換えられたベクター タイル レイヤーが新しい名前でポータルにアーカイブされます。 ポータル情報が SignInToPortal 関数から取得されます。

import arcpy
import os
import json

# Sign in to portal
arcpy.SignInToPortal("https://www.arcgis.com", "MyUserName", "MyPassword")

# Reference map to publish
aprx = arcpy.mp.ArcGISProject(r"C:\Project\World.aprx")
m = aprx.listMaps('World')[0]

# Set output file names
outdir = r"C:\Project\Output"
service_name = "VectorTileLayerExample"
package_filename = service_name + ".vtpk"
package_output_filename = os.path.join(outdir, package_filename)

# Create vector tile package
arcpy.management.CreateVectorTilePackage(m, package_output_filename, "ONLINE")

# Upload and publish vector tile package
result = arcpy.management.SharePackage(package_output_filename, publish_web_layer=True)

print("Finish uploading and publishing package")

# Get the item ID or service URL of the vector tile layer
jobresult = result[1]
result = json.loads(jobresult)

# Publish results JSON response example: {"publishStatus":"<status>","publishMessage":"<message>","publishResult":{"type":"Vector Tile Service","serviceurl":"<service_url>","size":1913146,"jobId":"<ID>","serviceItemId":"<ItemID>"}}
itemID = str(result.get('publishResult', {}).get('serviceItemId'))

print("Start Replacing")

# Set local variables for Replace Web Layer workflow
# target_layer/update_layer can be item ID or service URL; example below uses item ID
target_layer = "808ecf02f39441d69f245c0cb261134b"
archive_layer_name = "ReplaceWebLayerExample_archive"
update_layer = itemID
replace_item_info = "REPLACE"
create_new_item = "TRUE"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(target_layer, archive_layer_name, update_layer,
                             replace_item_info, create_new_item)

print("Finished Replacing")

ライセンス情報

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

関連トピック