描述
FeatureSharingDraft 类允许您配置 Web 要素图层属性并创建服务定义草稿 (.sddraft) 文件,且随后可将该文件与 ArcGIS Enterprise 或 ArcGIS Online 共享。
讨论
要创建 FeatureSharingDraft 类对象,请使用地图类函数 getWebLayerSharingDraft 并将 service_type 参数设置为 FEATURE。随后即可通过设置服务级别属性来配置 FeatureSharingDraft 类对象。在 FeatureSharingDraft 类对象配置完成后,可以使用 exportToSDDraft 函数将其保存到服务定义草稿 (.sddraft) 文件。随后即可使用过渡服务和上传服务定义工具将其过渡和共享给 ArcGIS Enterprise 或 ArcGIS Online。有关详细信息,请参阅共享模块简介。
属性
属性 | 说明 | 数据类型 |
allowExporting (可读写) | 决定用户是否可以将 web 图层导出为不同格式的布尔值。 | Boolean |
credits (可读写) | 用于表示制作者名单的字符串。 | String |
description (可读写) | 用于表示描述的字符串。 | String |
offline (可读写) | 用于决定是否使用门户连接的布尔值。如果将 offline 设置为 False,则您必须登录门户,以使用 exportToSDDraft 函数创建服务定义草稿 (.sddraft) 文件。如果将 offline 设置为 True,则无需登录门户即可创建服务定义草稿文件。 | Boolean |
overwriteExistingService (可读写) | 决定是否覆盖现有 web 图层的布尔值。 | Boolean |
portalFolder (可读写) | 表示要将 Web 图层发布到的门户文件夹的名称的字符串。默认文件夹是“我的内容”中的根文件夹。 | String |
serverType (只读) | 返回一个字符串,以表示根据地图类中的 getWebLayerSharingDraft 函数创建共享草稿时指定的服务器类型。从 serverType 的 FeatureSharingDraft 中返回的唯一可能的值为 HOSTING_SERVER。serverType 的 HOSTING_SERVER 表示支持共享至 ArcGIS Enterprise 或 ArcGIS Online。 | String |
serviceName (可读写) | 用于表示 web 图层名称的字符串。用户可以看到该名称并使用该名称来识别 web 图层。名称只能包含字母数字字符和下划线。不允许使用空格或特殊字符。名称长度不能超过 120 个字符。 | String |
summary (可读写) | 用于表示摘要的字符串。 | String |
tags (可读写) | 用于表示标签的字符串。可以添加多个标签,标签之间用逗号或分号进行分隔。 | String |
useLimitations (可读写) | 用于表示使用限制的字符串。 | String |
方法概述
方法 | 说明 |
exportToSDDraft (out_sddraft) | 将 FeatureSharingDraft 转换为服务定义草稿 (.sddraft) 文件。 |
方法
代码示例
以下脚本将地图作为 Web 要素图层发布至 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 = "FeatureSharingDraftExample"
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 FeatureSharingDraft and set service properties
sharing_draft = m.getWebLayerSharingDraft("HOSTING_SERVER", "FEATURE", service)
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, "My Hosted Services")
print("Successfully Uploaded service.")