TileSharingDraft

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

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

Обсуждение

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

Примечание:

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

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

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

Свойства

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

Путь и имя файла предварительно определенного файла схемы листов .xml, созданного с помощью инструмента Создать схему листов кэша картографического сервиса.

String
cache.exportTiles
(чтение и запись)

Указывает, будет ли клиентам разрешено загружать листы кэша для автономного использования. Значение по умолчанию равно False.

Boolean
cache.exportTilesCount
(чтение и запись)

Максимальное количество листов, которые можно загрузить за один запрос. Это свойство поддерживается, только если для свойства cache.exportTiles задано True. Значение по умолчанию равно 100000.

Integer
credits
(чтение и запись)

Кредиты веб-слоя.

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

Описание веб-слоя.

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

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

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

Версия целевого портала, для которой будет опубликовано определение сервиса. Указание версии позволяет быть уверенным в том, что в определении сервиса содержится ресурс, совместимый с вашим порталом. Это свойство поддерживается, только если для свойства offline задано True.

  • ENTERPRISE_10x - контент будет совместим с ArcGIS Enterprise 10.9.1 или более ранней версии. Используется по умолчанию.
  • ENTERPRISE_11 - контент будет совместим с ArcGIS Enterprise 11.0 или более поздней версии.
  • ONLINE — ресурс будет совместим с ArcGIS Online.
String
portalFolder
(чтение и запись)

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

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

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

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

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

String
sharing.groups
(чтение и запись)

Имена групп, разделенные запятыми.

String
sharing.sharingLevel
(чтение и запись)

Уровень доступа веб-слоя.

  • ВЛАДЕЛЕЦ — доступ к элементу могут получить только владелец и участники организации, имеющие права на просмотр ресурсов, принадлежащих другим участникам.
  • ОРГАНИЗАЦИЯ - поделитесь своими ресурсами со всеми аутентифицированными пользователями в вашей организации.
  • ДЛЯ ВСЕХ — поделитесь своими ресурсами с другими. Любой сможет получить доступ и видеть сцену.

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"
sddraft.sharing.sharingLevel = "EVERYONE"
sddraft.sharing.groups = ""  # Group names = "group1,group2"

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

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

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

print("Finish Publishing")
Публикация кэшированного веб-слоя листов

Следующий скрипт публикует кэшированный веб-слой листов, вызывая инструмент Управление листами кэша картографического сервера для создания листов кэша.

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 tiling scheme, export tile, and export tile count properties
server_type = "HOSTING_SERVER"
sddraft = m.getWebLayerSharingDraft(server_type, "TILE", service_name)
sddraft.cache.configuration = "C:\Program Files\ArcGIS\Pro\Resources\TilingSchemes\ArcGIS_Online_Bing_Maps_Google_Maps.xml"
sddraft.cache.exportTiles = True
sddraft.cache.exportTilesCount = 5566

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

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

# Share to portal
print("Start Uploading")
results = arcpy.server.UploadServiceDefinition(sd_output_filename, server_type)
rest_url = results[6]

# Manage Map Server Cache Tiles
# For cache, use multiple scales separated by semicolon (;)
# For example, "591657527.591555;295828763.795777"
arcpy.server.ManageMapServerCacheTiles(rest_url, "591657527.591555", "RECREATE_ALL_TILES")

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_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 layers 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_name, 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
print("Start Staging")
arcpy.server.StageService(sddraft_output_filename, sd_output_filename)

# Share to portal
print("Start Uploading")
arcpy.server.UploadServiceDefinition(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 and offlineTarget properties
server_type = "HOSTING_SERVER"
sddraft = m.getWebLayerSharingDraft(server_type, "TILE", service_name)
sddraft.offline = True
# Set offlineTarget property to "ONLINE" for ArcGIS Online or "ENTERPRISE_11" for ArcGIS Enterprise 11.0 or later
# The default is ArcGIS Enterprise 10.9.1 or earlier
sddraft.offlineTarget = "ENTERPRISE_10x"

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

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

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

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

print("Finish Publishing")

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