TileSharingDraft

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

Класс TileSharingDraft позволяет вам создать файл черновика определения сервиса (.sddraft) для веб-слоя листов, который копирует все данные либо в ArcGIS Enterprise, либо в ArcGIS Online.

Обсуждение

Чтобы создать объект класса TileSharingDraft, используйте функцию класса карты getWebLayerSharingDraft и установите для параметра service_type значение TILE. Объект класса TileSharingDraft можно настроить, задав свойства уровня сервиса и свойства метаданных.

Примечание:

Если свойства метаданных (credits, description, summary, tags и useLimitations) не заданы или состоят из пустых строк, элемент веб-слоя будет получать метаданные с карты или слоя, в зависимости от того, что опубликовано. Дополнительные сведения о том, как веб-слои являются источником метаданных, см. в разделе Метаданные веб-слоя.

После настройки объекта класса TileSharingDraft он может быть сохранен в файле черновика определения сервиса (.sddraft) с помощью функции exportToSDDraft. Затем он может быть применен и опубликован либо в ArcGIS Enterprise, либо в ArcGIS Online, используя инструменты Промежуточный сервис и Выгрузить определение сервиса. Дополнительные сведения см. в разделе Введение в arcpy.sharing.

Примеры кода доступны для следующего:

Свойства

СвойствоОписаниеТип данных
credits
(чтение и запись)

Строка со сведениями об авторах.

String
description
(чтение и запись)

Строка с описанием.

String
offline
(чтение и запись)

Булево значение, определяющее использование подключения к порталу. Если для offline задано False, необходимо войти на портал, чтобы создать файл черновика определения сервиса (.sddraft), используя функцию exportToSDDraft. Если для offline задано True, файл черновика определения сервиса можно создать без входа на портал.

Boolean
portalFolder
(чтение и запись)

Строка, содержащая имя папки портала, в который вы желаете опубликовать веб-слой. Папкой по умолчанию является корневая папка в Моих ресурсах.

String
serverType
(только чтение)

Возвращает строку, предоставляющую данные о типе сервера, как указано при создании черновика публикации с помощью функции getWebLayerSharingDraft из класса map. Единственно возможное значение, которое возвращается из serverType для TileSharingDraftHOSTING_SERVER. serverType HOSTING_SERVER указывает на поддержку публикации в ArcGIS Enterprise или ArcGIS Online.

String
serviceName
(чтение и запись)

Строка, представляющая имя веб-слоя. Это имя будут видеть пользователи и идентифицировать по нему веб-слой. Имя может содержать только буквы, цифры и знак подчеркивания. В имени нельзя использовать пробелы и специальные символы. Длина имени не должна превышать 120 символов.

String
summary
(чтение и запись)

Строка со сводной информацией.

String
tags
(чтение и запись)

Строка, с тегами. Можно добавить несколько тегов с разделением запятой или точкой с запятой.

String
useLimitations
(чтение и запись)

Строка с ограничениями использования.

String

Обзор метода

МетодОписание
exportToSDDraft (out_sddraft)

Конвертирует TileSharingDraft в файл черновика определения сервиса (.sddraft).

Методы

exportToSDDraft (out_sddraft)
ПараметрОписаниеТип данных
out_sddraft

Строка, представляющая путь и имя файла для выходного файла черновика определения сервиса (.sddraft).

String

После настройки TileSharingDraft, его можно сохранить в файл определения сервиса (.sddraft). Затем он может быть применен и опубликован либо в ArcGIS Enterprise, либо в ArcGIS Online, используя инструменты Промежуточный сервис и Выгрузить определение сервиса.

Пример кода

Публикация веб-слоя листов в папке портала

Следующий скрипт создает файл черновика определения сервиса веб-слоя листов (.sddraft) для карты и устанавливает метаданные и свойства данных экспорта. Веб-слой листов публикуется в папке в ArcGIS Enterprise или ArcGIS Online. Информация о портале извлекается функцией SignInToPortal.

import arcpy
import os

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

# Set output file names
outdir = r"C:\Project\Output"
service_name = "TileSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)

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

# Create TileSharingDraft and set metadata and portal folder properties
server_type = "HOSTING_SERVER"
sddraft = m.getWebLayerSharingDraft(server_type, "TILE", service_name)
sddraft.credits = "These are credits"
sddraft.description = "This is description"
sddraft.summary = "This is summary"
sddraft.tags = "tag1, tag2"
sddraft.useLimitations = "These are use limitations"
sddraft.portalFolder = "my folder name"

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Stage Service
print("Start Staging")
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.UploadServiceDefinition_server(sd_output_filename, server_type)

print("Finish Publishing")
Публикация списка слоев

Следующий скрипт публикует список слоев из карты как слой веб-листов в ArcGIS Enterprise или ArcGIS Online. Информация о портале извлекается функцией SignInToPortal.

import arcpy
import os

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

# Set output file names
outdir = r"C:\Project\Output"
service = "TileSharingDraftExample"
sddraft_filename = service + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)

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

# Create TileSharingDraft and set metadata properties
sharing_draft = m.getWebLayerSharingDraft("HOSTING_SERVER", "TILE", service, lyrs)
sharing_draft.summary = "My Summary"
sharing_draft.tags = "My Tags"
sharing_draft.description = "My Description"
sharing_draft.credits = "My Credits"
sharing_draft.useLimitations = "My Use Limitations"

# Create Service Definition Draft file
sharing_draft.exportToSDDraft(sddraft_output_filename)

# Stage Service
sd_filename = service + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.UploadServiceDefinition_server(sd_output_filename, "My Hosted Services")

print("Finish Publishing")
Создание и публикация определения автономнго сервиса

Следующий скрипт создает определение автономного сервиса и публикует его как веб-слой листов.

import arcpy
import os

# Set output file names
outdir = r"C:\Project\Output"
service_name = "TileSharingDraftExample"
sddraft_filename = service_name + ".sddraft"
sddraft_output_filename = os.path.join(outdir, sddraft_filename)
sd_filename = service_name + ".sd"
sd_output_filename = os.path.join(outdir, sd_filename)

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

# Create TileSharingDraft and set offline property
server_type = "HOSTING_SERVER"
sddraft = m.getWebLayerSharingDraft(server_type, "TILE", service_name)
sddraft.offline = True

# Create Service Definition Draft file
sddraft.exportToSDDraft(sddraft_output_filename)

# Sign in to portal to upload and publish
arcpy.SignInToPortal("https://www.portal.domain.com/webadaptor", 
"MyUserName", "MyPassword")

# Stage Service
print("Start Staging")
arcpy.StageService_server(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.UploadServiceDefinition_server(sd_output_filename, server_type)

print("Finish Publishing")

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