通过结合使用共享模式下的 ArcPy 函数与发布、缓存、切片缓存和包工具集中的地理处理工具,可借助 Python 自动共享、覆盖和替换 Web 图层。
可通过两种方法自动共享 web 图层:从服务定义或包中发布 Web 图层。 应使用的方法取决于要发布的 Web 图层类型。 如果使用服务定义方法,则 Web 图层是从服务定义发布的。 如果使用包方法,则该缓存是在本地作为包创建的,然后将其上传并用于发布 Web 图层。
注:
某些 Web 图层配置不能使用 Python 发布。 必须使用应用程序用户界面发布以下内容:
- 具有关联地图图像图层和/或 web 要素图层的矢量切片图层
- 具有关联地图图像图层和/或 web 要素图层的 Web 场景图层
从服务定义发布 Web 图层
发布 Web 图层的工作流始于要共享的项目或栅格数据集中的地图。
- 首先,使用 Map 类中的 getWebLayerSharingDraft 方法创建服务定义草稿。 有关详细信息,请参阅 FeatureSharingDraft、MapImageSharingDraft 或 TileSharingDraft。 要为独立表创建服务定义草稿,请将 ListTables 函数与 FeatureSharingDraft 类配合使用。 要为 Web 影像图层创建服务定义草稿,请使用 CreateImageSDDraft 函数。
要覆盖 Web 要素图层、地图图像图层或独立表,请修改共享草稿的 overwriteExistingService 属性。
注:
此属性不适合 TileSharingDraft 或 CreateImageSDDraft。 对于 Web 切片图层,请改用替换 Web 图层地理处理工具。
- 接下来,使用过渡服务地理处理工具过渡服务定义。 过渡操作获取服务定义草稿并将共享 web 图层所需的所有信息合并到完整的服务定义中。
- 最后,使用上传服务定义地理处理工具上传服务定义并发布 web 图层。
注:
您将需要使用具有内容创建与发布权限的 ArcGIS Online 或 ArcGIS Enterprise 帐户登录 AllSource。
从包发布 Web 图层
对于 Web 切片图层和矢量切片图层,工作流始于要共享的工程中的地图。 对于 Web 场景图层和 Web 高程图层,工作流始于受支持的输入数据集。
- 首先,为要使用相应的地理处理工具或工具共享的 Web 图层类型创建包。
Web 图层类型 地理处理工具或工具 创建地图切片包 创建矢量切片包 可通过多种工具创建场景图层包。 有关详细信息,请参阅创建和共享场景图层包。
使用地理处理工具创建其内容的 web 图层 提示:
在为 Web 切片图层或 Web 高程图层创建切片包之前,可选择使用生成地图服务器缓存切片方案或生成切片缓存切片方案工具在地图或高程数据集的投影中生成切片方案。 如果要使用 ArcGIS Online/Bing Maps/Google Maps 切片方案,可以跳过此步骤。 有关详细信息,请参阅共享切片包。
- 接下来,使用共享包工具将包作为 web 图层上传并发布到 ArcGIS Online 或 ArcGIS Enterprise。
- 最后,可以选择使用替换 Web 图层工具将门户中现有 Web 图层的内容替换为新 Web 图层的内容。
注:
无法替换 Web 高程图层。