MapImageSharingDraft

Сводка

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

Описание

Чтобы создать объект класса MapImageSharingDraft, используйте функцию класса map getWebLayerSharingDraft и задайте для параметра service_type значение MAP_IMAGE. Объект класса MapImageSharingDraft может затем быть настроен указанием свойств на уровне сервиса. Используйте параметр federatedServerUrl, чтобы указать, на каком интегрированном сервере будет опубликован данный веб-слой. После настройки объекта класса MapImageSharingDraft, его можно сохранить в файл определения сервиса (.sddraft) с помощью функции exportToSDDraft. Затем он может быть опубликован в ArcGIS Enterprise с помощью инструментов Промежуточный сервис и Загрузить определение сервиса. Для получения дополнительной информации см. Введение в модуль Общего доступа.

Свойства

ВладениеОбъяснениеТип данных
copyDataToServer
(чтение и запись)

Булев параметр, указывающий на то, будут ли данные этой карты копироваться на сервер или нет. Если значение True, то будут скопированы все данные на карте, в том числе данные, которые зарегистрированы на интегрированном сервере. При значении False будут скопированы только данные, которые не зарегистрированы на интегрированном сервере, сервис будет на них ссылаться.

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

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

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

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

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

Строка, содержащая URL-адрес интегрированного сервера портала ArcGIS Enterprise.

Подсказка:

URL интегрированного сервера также может использоваться в параметре in_server для инструмента Выгрузить определение сервиса. Примеры кода ниже демонстрируют это.

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

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

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

Булева переменная, которая определяет, перезаписывать ли существующий веб-слой или нет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

String

Обзор метода

МетодОбъяснение
exportToSDDraft (out_sddraft)

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

Методы

exportToSDDraft (out_sddraft)
ParameterОбъяснениеТип данных
out_sddraft

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

String

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

Подсказка:

Если для параметра offline задано значение False, то после входа в портал необходимо указать URL-адрес интегрированного сервера портала ArcGIS Enterprise в качестве значения параметра federatedServerUrl, чтобы создать файл черновика определения сервиса (.sddraft), используя функцию exportToSDDraft. Но, если для offline задано значение True, то в этом случае файл черновика определения сервиса может быть создан без выполнения входа в портал и без указания параметра federatedServerUrl.

Пример кода

Пример MapImageSharingDraft

Следующий скрипт опубликует карту как слой изображений карты на интегрированном сервере портала ArcGIS Enterprise. Информацию о портале можно получить на странице Portals в ArcGIS Pro.

import arcpy
import os

# Set output file names
outdir = r"C:\Project\Output"
service = "MapImageSharingDraftExample"
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]

# Create MapImageSharingDraft and set service properties
sharing_draft = m.getWebLayerSharingDraft("FEDERATED_SERVER", "MAP_IMAGE", service)
sharing_draft.federatedServerUrl = "https://MyFederatedServer.esri.com/server"
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("Uploading Service Definition...")
arcpy.UploadServiceDefinition_server(sd_output_filename, "https://MyFederatedServer.esri.com/server")

print("Successfully Uploaded service.")
Пример изменения SDDraft

Следующий скрипт создает для карты черновик файла определения сервиса слоя изображений карты (.sddraft). Затем он разрешит доступ к объекту в слое изображений карты, изменив черновик файла определения сервиса с помощью стандартной библиотеки Python xml.dom.minidom. Затем измененный файл определения сервиса будет опубликован на интегрированном сервере портала ArcGIS Enterprise. Информацию о портале можно получить на странице Portals в ArcGIS Pro.

import arcpy
import os
import xml.dom.minidom as DOM

# Set output file names.
outdir = r"C:\Project\Output"
service = "MapImage_ModifyXML_EnableFeatureAccess"
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]

# Create MapImageSharingDraft and set service properties.
sddraft = m.getWebLayerSharingDraft('FEDERATED_SERVER', 'MAP_IMAGE', service)
sddraft.federatedServerUrl = "https://MyFederatedServer.esri.com/server"

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

# Read the sddraft xml.
doc = DOM.parse(sddraft_output_filename)

# Find all elements named TypeName. This is where the server object extension
# (SOE) names are defined.
typeNames = doc.getElementsByTagName('TypeName')
for typeName in typeNames:
    # Get the TypeName we want to enable.
    if typeName.firstChild.data == "FeatureServer":
        extension = typeName.parentNode
        for extElement in extension.childNodes:
            # Enable Feature Access.
            if extElement.tagName == 'Enabled':
                extElement.firstChild.data = 'true'
				
# Output to a new sddraft.  
sddraft_mod_xml = service + '_mod_xml' + '.sddraft'
sddraft_mod_xml_file = os.path.join(outdir, sddraft_mod_xml)
f = open(sddraft_mod_xml_file, 'w')     
doc.writexml(f)     
f.close() 

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

# Share to portal.
print("Uploading Service Definition...")
arcpy.UploadServiceDefinition_server(sd_output_filename, "https://MyFederatedServer.esri.com/server")

print("Successfully Uploaded service.")