操作方法

操作方法:在 ArcGIS Pro 中使用 ArcPy 将图层的数据源从引用地理数据库更改为 ArcGIS Server 服务 URL

Last Published: October 1, 2025

摘要

工程中图层的数据源将引用计算机上地理数据库物理位置中的要素类。 如果数据集发布为 ArcGIS Server 服务或 ArcGIS Online 服务,则该数据集还可以引用 URL。 在 ArcPy 模块中,数据源表示在“connectionProperties”字典中,如下所示。

在地理数据库中

{'connection_info': {'database': 'E:\\ArcGIS\\Project\\Database.gdb'}, 'dataset': 'layerXYZ', 'workspace_factory': 'File Geodatabase'}

在 ArcGIS Server 服务中

{'connection_info': {'url': 'http://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/MapServer'}, 'dataset': '1', 'workspace_factory': 'FeatureService'}

过程

要使用“connectionProperties”字典,请导入 ArcPy 和“pprint”模块。

以下步骤将介绍如何将图层的数据源从引用地理数据库更改为服务 URL。

  1. 导入所需的模块。
import arcpy, pprint
  1. 指定工程详细信息。
aprx=arcpy.mp.ArcGISProject('current') map=aprx.listMaps()[0] l=map.listLayers()[0]
  1. 调用 connectionProperties 字典。
pprint.pprint(l.connectionProperties)
  1. 指定当前数据源(地理数据库)字典。
Find_dic = {'connection_info':{'database': 'C:\\arcgis\\TEST\\Editing\\Test.gdb'},'dataset': 'Springs','workspace_factory': 'File Geodatabase'}
  1. 指定服务 URL 字典。
replace_dic = {'connection_info':{'url':r'https://services.arcgis.com/Wl7Y1m92PbjtJs5n/arcgis/rest/services/None/FeatureServer'},'dataset': '0','workspace_factory': 'FeatureService'}
  1. 调用 updateConnectionProperties() 函数以更新数据源,然后保存工程文件。
l.updateConnectionProperties(Find_dic,replace_dic,True,False,False) aprx.save()

以下显示的是完整脚本。

import arcpy, pprint aprx=arcpy.mp.ArcGISProject('current') map=aprx.listMaps()[0] l=map.listLayers()[0] pprint.pprint(l.connectionProperties) Find_dic = {'connection_info':{'database': 'C:\\arcgis\\TEST\\Editing\\Test.gdb'},'dataset': 'Springs','workspace_factory': 'File Geodatabase'} replace_dic = {'connection_info':{'url':r'https://services.arcgis.com/Wl7Y1m92PbjtJs5n/arcgis/rest/services/None/FeatureServer'},'dataset': '0','workspace_factory': 'FeatureService'} l.updateConnectionProperties(Find_dic,replace_dic,True,False,False) aprx.save()

connectionProperties 字典还会更新服务 URL。 以下步骤将介绍如何执行此操作。

  1. 执行上述部分中的步骤 1 到 3。
  2. 定义用于存储字典的参数。
conProp = l.connectionProperties
  1. 更新 URL。
conProp['connection_info']['url'] = r'https://sampleserver6.arcgisonline.com/arcgis/rest/services/EmergencyFacilities/FeatureServer'
  1. 调用 updateConnectionProperties() 函数以更新数据源,然后保存工程文件。
l.updateConnectionProperties(l.connectionProperties,conProp) aprx.save()

以下显示的是完整脚本。

import arcpy, pprint p = arcpy.mp.ArcGISProject(r'C:\Projects\YosemiteNP\Yosemite.aprx') m = p.listMaps()[0] l = m.listLayers()[0] pprint.pprint(l.connectionProperties) conProp = l.connectionProperties conProp['connection_info']['url'] = r'https://sampleserver6.arcgisonline.com/arcgis/rest/services/EmergencyFacilities/FeatureServer' l.updateConnectionProperties(l.connectionProperties,conProp) aprx.save()

文章 ID: 000021613

获得人工智能支持

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

立即开始聊天

相关信息

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

获取来自 ArcGIS 专家的帮助

联系技术支持部门

立即开始聊天

转至下载选项