操作方法

操作方法:使用 ArcGIS API for Python 编辑分支版本化要素图层

Last Published: May 22, 2024

描述

分支版本化是一种地理数据库版本化,支持使用基于服务的架构的 ArcGIS Enterprise Web GIS 模型,以允许通过 Web 要素图层执行多用户编辑工作流和长期事务方案。 Web 要素图层(也称为要素服务)是共享的图层,用于支持显示、查询和编辑 Web 上的数据。

ArcGIS API for Python 使得以编程方式编辑分支版本化要素图层成为可能。 概括地说,典型的分支版本化编辑工作流如下:

  • 创建分支版本以将编辑内容与默认版本隔离。 (版本管理)
  • 启动编辑会话(版本管理)
  • 创建新要素(要素访问)
  • 将当前分支版本与默认版本进行协调。 (版本管理)
  • 将当前版本中的更改提交到默认版本。 (版本管理)
  • 停止编辑会话。 (版本管理)
  • 删除版本。 (版本管理)

解决方案或解决方法

以下 Python 代码片段演示了如何通过版本管理服务器对分支版本化点要素图层执行编辑

from arcgis.gis import GIS
from arcgis.features._version import VersionManager

try:
# parameters
machine = 'machine.domain'
portalUrl = 'https://{0}/webadaptor'.format(machine)
base_server_url = "https://{0}/server/rest/services/samplePointsBV".format(machine)
version_management_server_url = "{0}/VersionManagementServer".format(base_server_url)
new_version_name = "v1"
userName = ''
password = ''

# Sign in to Portal
gis = GIS(portalUrl, userName, password)

vms = VersionManager(version_management_server_url, gis)
print(vms.properties)

# Get a list of all versions
versions = vms.all
print(versions)

# feature to add
feature = {
"attributes": {
"name": "TEST123",
},
"geometry": {
"x": 153.11349,
"y": -27.492016
}
}

# Create a new version
version = vms.create(new_version_name)
print(version.properties)

# Get the layer to edit
editlayer = version.layers[0]
print(editlayer)

# Start an edit session
version.mode = 'edit'
version.start_editing()

add_result = version.edit(editlayer, adds=[feature], updates=None, deletes=None, use_global_ids=False, rollback_on_failure=True)
print(add_result)

version.stop_editing(save=True)
version.mode = None

print("Edits complete")

except Exception as err:
print("Error: {0}".format(err))

文章 ID: 000032186

获得人工智能支持

使用 Esri Support AI Chatbot 快速解决您的问题。

立即开始聊天

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项