Краткая информация
Преобразует документ карты, слой или список слоев в ArcGIS Project в файл черновика определения сервиса (.sddraft).
Обсуждение
Прежние версии:
Модуль arcpy.sharing, который появился в ArcGIS Pro 2.2 для более удобной публикации веб слоев, чем с помощью предыдущей функции CreateWebLayerSDDraft. Исходная функция осталась исключительно для совместимости с предыдущими версиями. Для получения дополнительной информации см. Введение в модуль Общего доступа.CreateWebLayerSDDraft является первым шагом для автоматизации публикации карты, слоя или списка слоев на размещенном веб-слое с использованием ArcPy. Результатом работы CreateWebLayerSDDraft является файл Черновика определения сервиса (.sddraft).
Чтобы опубликовать веб-слой, необходимо следующее:
- Учетная запись организации ArcGIS online
- Роль издателя или администратора, назначенная вашей учетной записи
Черновик определения сервиса затем может быть преобразован в полностью готовый файл определения сервиса (.sd) с помощью инструмента Промежуточный сервис. Во время подготовки компилируется вся информация, необходимая для успешной публикации ГИС-ресурса. Наконец, файл определения сервиса можно загрузить и опубликовать как ГИС-сервис на заданном сервере онлайн-организации с помощью инструмента Загрузить определение сервиса. На этом шаге файл определения сервиса копируется на сервер, извлекается необходимая информация и публикуется ГИС-ресурс.
При публикации размещенных сервисов на ArcGIS Online используется информация об учетных данных (логин и пароль), которая была предоставлена при запуске ArcGIS Pro.
Синтаксис
CreateWebLayerSDDraft (map_or_layers, out_sddraft, service_name, {server_type}, {service_type}, {folder_name}, {overwrite_existing_service}, {copy_data_to_server}, {enable_editing}, {allow_exporting}, {enable_sync}, {summary}, {tags}, {description}, {credits}, {use_limitations})
Параметр | Описание | Тип данных |
map_or_layers | Переменная, которая ссылается на объекты Map, Layer или список объектов Layer. Если вы публикуете список объектов Слоя, они должны быть из одной и той же карты. | Object |
out_sddraft | Строка, представляющая путь и имя файла для выходного файла черновика определения сервиса (.sddraft). | String |
service_name | Строка, представляющая имя сервиса. Это то имя, которое будут видеть другие пользователи и использовать для обозначения этого сервиса. Имя может содержать только буквы, цифры и знак подчеркивания. В имени нельзя использовать пробелы и специальные символы. Длина имени не должна превышать 120 символов. | String |
server_type | Строка, представляющая тип сервера. В настоящее время единственным значением, которое поддерживается, является MY_HOSTED_SERVICES для ArcGIS Online. (Значение по умолчанию — MY_HOSTED_SERVICES) | String |
service_type | Строка, представляющая тип сервиса.
Примечание:Слои изображений карты и картографические сервисы не поддерживаются функцией CreateWebLayerSDDraft. Для них используйте модуль arcpy.sharing. (Значение по умолчанию — FEATURE_ACCESS) | String |
folder_name | Строка, содержащая имя папки, в которой требуется опубликовать определение сервиса. Если папка не существует, она будет создана. Папкой по умолчанию является корневая папка сервера. (Значение по умолчанию — None) | String |
overwrite_existing_service | Логическое (Булево) значение, определяющее, следует ли заменить существующую службу или нет. (Значение по умолчанию — False) | Boolean |
copy_data_to_server | Логический параметр, устанавливающий, будут ли данные, на которые ссылается документ карты, копироваться на сервер или нет. (Значение по умолчанию — False) | Boolean |
enable_editing | Логический параметр, определяющий, включено ли редактирование сервисов пространственных объектов. Возможность запросов всегда включена. Редактирование не является обязательным. (Значение по умолчанию — False) | Boolean |
allow_exporting | Логический параметр, определяющий, могут ли пользователи экспортировать данный сервис в различные форматы. (Значение по умолчанию — False) | Boolean |
enable_sync | Логический параметр, определяющий, могут ли пользователи работать с локальной копией данных, даже если они работают автономно и синхронизируют изменения, когда они подключены к интернету. (Значение по умолчанию — False) | Boolean |
summary | Строка со сводной информацией. (Значение по умолчанию — None) | String |
tags | Строка, с тегами. Можно добавить несколько тегов с разделением запятой или точкой с запятой. (Значение по умолчанию — None) | String |
description | Строка с описанием. (Значение по умолчанию — None) | String |
credits | Строка со сведениями об авторах. (Значение по умолчанию — None) | String |
use_limitations | Строка с ограничениями использования. (Значение по умолчанию — None) | String |
Пример кода
Следующий скрипт публикует карту как векторные слои на ArcGIS Online.
import arcpy
aprx = arcpy.mp.ArcGISProject('C:/Project/Counties.aprx')
m = aprx.listMaps('USA Counties')[0]
arcpy.mp.CreateWebLayerSDDraft(m, 'C:/Project/Counties.sddraft', 'Counties', 'MY_HOSTED_SERVICES', 'FEATURE_ACCESS')
arcpy.StageService_server('C:/Project/Counties.sddraft', 'C:/Project/Counties.sd')
arcpy.UploadServiceDefinition_server('C:/Project/Counties.sd', 'My Hosted Services')
Следующий скрипт публикует список слоев как слои листов на ArcGIS Online.
import arcpy
aprx = arcpy.mp.ArcGISProject('C:/Project/Counties.aprx')
m = aprx.listMaps('USA Counties')[0]
lyrs=[]
lyrs.append(m.listLayers('Cities')[0])
lyrs.append(m.listLayers('Counties')[0])
arcpy.mp.CreateWebLayerSDDraft(lyrs, 'C:/Project/Counties.sddraft', 'Counties', 'MY_HOSTED_SERVICES', 'TILED')
arcpy.StageService_server('C:/Project/Counties.sddraft', 'C:/Project/Counties.sd')
arcpy.UploadServiceDefinition_server('C:/Project/Counties.sd', 'My Hosted Services')
Следующий скрипт публикует отдельный слой как векторный слой на ArcGIS Online.
import arcpy
aprx = arcpy.mp.ArcGISProject('C:/Project/Counties.aprx')
m = aprx.listMaps('USA Counties')[0]
lyr = m.listLayers('Cities')[0]
arcpy.mp.CreateWebLayerSDDraft(lyr, 'C:/Project/Cities.sddraft', 'Cities', 'MY_HOSTED_SERVICES', 'FEATURE_ACCESS')
arcpy.StageService_server('C:/Project/Cities.sddraft', 'C:/Project/Cities.sd')
arcpy.UploadServiceDefinition_server('C:/Project/Cities.sd', 'My Hosted Services')