操作方法
有时,在 ArcGIS Online 中将文件地理数据库中的要素追加到托管要素图层时,不会保留全局 ID 字段。 保留全局 ID 至关重要,因为全局 ID 用于唯一标识每个要素,通常用于追踪关系、同步数据和管理编辑历史记录,尤其在离线工作流和要素服务中更是如此。
本文提供了一个工作流,该工作流使用在 ArcGIS Pro 内的 Python 窗口中运行的 Python 脚本将文件地理数据库追加到 ArcGIS Online 中的托管要素图层。
Note: To preserve GlobalIDs and avoid the automatic creation of new GlobalIDs, ensure the GlobalID field is already present in the hosted feature layer.
import arcpy file_gdb_path = r"<file_geodatabase_path>" hosted_feature_layer = r"<hosted_feature_layer_URL>"
field_mappings = arcpy.FieldMappings()
global_id_field_map = arcpy.FieldMap() global_id_field_map.addInputField(file_gdb_path, "GlobalID") global_id_field_map.outputField.name = "GlobalID"
field_mappings.addFieldMap(global_id_field_map)
field1_field_map = arcpy.FieldMap() field1_field_map.addInputField(file_gdb_path, "<field_name>") field1_field_map.outputField.name = "<field_name>" field_mappings.addFieldMap(field1_field_map)
arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)
以下代码块演示了完整工作脚本。
import arcpy file_gdb_path = r"C:\Users\dpalzaniappan\Documents\ArcGIS\Projects\MyProject91\MyProject91.gdb\Testi" hosted_feature_layer = r"https://services9.arcgis.com/LMjydzYxR6YFiqk8/arcgis/rest/services/Testio123/FeatureServer/0" field_mappings = arcpy.FieldMappings() global_id_field_map = arcpy.FieldMap() global_id_field_map.addInputField(file_gdb_path, "GlobalID") global_id_field_map.outputField.name = "GlobalID" field_mappings.addFieldMap(global_id_field_map) field1_field_map = arcpy.FieldMap() field1_field_map.addInputField(file_gdb_path, "Name") field1_field_map.outputField.name = "Name" field_mappings.addFieldMap(field1_field_map) arcpy.Append_management(file_gdb_path, hosted_feature_layer, schema_type="NO_TEST", field_mapping=field_mappings)
下图显示了在 ArcGIS Pro 的 Python 窗口中使用的 Python 脚本,该脚本用于将文件地理数据库追加到托管要素图层。

文章 ID: 000032358
获取来自 ArcGIS 专家的帮助
立即开始聊天