Publish

摘要

Publish 函数将 SceneLayerSharingDraft 对象作为具有关联 Web 要素图层的 Web 场景图层发布到 ArcGIS OnlineArcGIS Enterprise。 如果将引用注册数据的 Web 场景图层发布到 ArcGIS Enterprise,则还会包含关联的地图影像图层。 Web 场景图层和关联的 Web 图层发布后,服务器上就会开始缓存。

您可以使用 item_id 参数为 Web 场景图层和关联 Web 图层指定项目 ID。 必须提供项目 ID 才能成功发布。 当共享到 ArcGIS Enterprise 10.8.1 或更高版本时,参数适用于 Web 场景图层和 Web 要素图层。 对于地图影像图层,共享到 ArcGIS Enterprise 11.2 或更高版本时将支持该参数。

语法

Publish (object, {item_id})
参数说明数据类型
object

The SceneLayerSharingDraft object that will be published.

Object
item_id

An optional dictionary of items IDs that will be honored when publishing. The ID must be available and contain 32 alphanumeric values ranging from the letters a to f and numbers 0 to 9. An item ID will be automatically created if no ID is specified.

{ 
  "web_scene_layer_id":"f62ad2r55geb4c9fa4f2faaf2fea96db",
  "web_feature_layer_id":"t31dc5jb6c8h4y5fb9c67e8801e48735",
  "map_image_layer_id":"54727ad350f74b7rbfa84e1fr122c071"
}

Dictionary
返回值
数据类型说明
Dictionary

返回包含项目 URL、REST URL 和缓存作业 ID 的字典。

代码示例

发布 Web 场景图层

以下脚本为场景中的图层创建 Web 场景图层共享草稿。 为 Web 场景图层和关联的 Web 图层指定项目 ID。 Web 场景图层将发布至 ArcGIS Enterprise。 门户信息可从 SignInToPortal 函数中获得。

import arcpy

# Sign in to portal
arcpy.SignInToPortal("https://organization.example.com/webadaptorname",
                     "MyUserName", "MyPassword")

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

# Create SceneLayerSharingDraft
server_type = "FEDERATED_SERVER"
service_type = "SCENE_LAYER"
service_name = "SceneLayerSharingDraftExample"
scene_draft = m.getWebLayerSharingDraft(server_type, service_type, service_name, lyr)

# Publish scene layer using the SceneLayerSharingDraft object and specific item ID
# The ID must be available and contain 32 alphanumeric values ranging from the letters a to f and numbers 0 to 9
item_id = {
 "web_scene_layer_id": "itemid1",
 "web_feature_layer_id": "itemid2",
 "map_image_layer_id": "itemid3"
}

# Share to portal
print("Start Publishing")
res = arcpy.sharing.Publish(scene_draft, item_id)

print(r"item_url: " + res["web_scene_layer"]["item_url"])
print(r"rest_url: " + res["web_scene_layer"]["rest_url"])
print(r"cache_job_id: " + res["web_scene_layer"]["cache_job_id"])
print("Finish Publishing")

相关主题