描述
用于将门户中某一 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 图层不会被覆盖。相反,它将以新名称存档于您的门户中。默认情况下,存档图层名称为 <layer name>_archive_<timestamp>。可以指定其他名称,但它必须是门户中的唯一 Web 图层名称。
默认情况下,归档图层使用更新图层的项目 ID。(可选)可以为归档图层指定新的项目 ID。
或者,您可以使用更新图层的项目信息替换目标图层的项目信息。如果您替换项目信息,则摘要、描述、标签和缩略图也将被替换。而制作者名单(属性)和使用条款等其他信息则不会被替换。
语法
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 (可选) | 指定是否替换缩略图、摘要、描述和标签。无论哪种情况,都不会替换项目的“制作者名单(属性)”、“使用条款”和“创建时间”信息。
| Boolean |
create_new_item (可选) | 指定是否为归档图层创建新项目。此选项适用于 ArcGIS Online 和 ArcGIS Enterprise 10.8 或更高版本中的门户。
| Boolean |
派生输出
名称 | 说明 | 数据类型 |
updated_target_layer | 更新的 web 图层的 URL。 | 字符串 |
代码示例
以下脚本将使用输入图层的项目 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"
# Execute Replace Web Layer
arcpy.ReplaceWebLayer_server(targetLayerID, archiveLayerName, updateLayerID,
replaceItemInfo, createNewItem)
print("Successfully replaced web layer.")
以下脚本将使用输入图层的服务 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"
# Execute Replace Web Layer
arcpy.ReplaceWebLayer_server(targetLayer, archiveLayerName, updateLayer)
print("Successfully replaced web layer.")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是