Publish

Краткая информация

Функция Publish публикует объект SceneLayerSharingDraft как слой веб-сцены со связанным векторным веб-слоем в ArcGIS Online или ArcGIS Enterprise. Если вы публикуете слой веб-сцены, ссылающийся на зарегистрированные данные, в ArcGIS Enterprise, связанный с ним слой изображений карты также включается. Как только слой веб-сцены и связанные с ним веб-слои будут опубликованы, на сервере начнется кэширование.

Вы можете использовать параметр item_id для указания ID элементов для слоя веб-сцены и связанных с ним веб-слоев. Для успешной публикации ID элементов должны быть доступны. Этот параметр учитывается для слоев веб-сцен и векторных веб-слоев при публикации в ArcGIS Enterprise 10.8.1 или более поздней версии. Этот параметр учитывается для слоев изображений карты при публикации в 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-адрес элемента, URL-адрес REST и ID задания кэширования.

Пример кода

Публикация слоя веб-сцены

Следующий сценарий создает черновик публикации слоя веб-сцены для слоя в сцене. ID элементов указаны для слоя веб-сцены и связанных с ним веб-слоев. Слой веб-сцены публикуется в 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")

Связанные разделы