Instrução

Alterar a fonte de dados de uma camada referenciando um geodatabase para uma URL de Serviço do ArcGIS Server no ArcGIS Pro usando ArcPy

Last Published: October 1, 2025

Resumo

A fonte de dados de uma camada em um projeto faz referência à classe de feição do local físico do geodatabase em uma máquina. O conjunto de dados também pode fazer referência a uma URL se o conjunto de dados for publicado como um serviço do ArcGIS Server ou um serviço do ArcGIS Online. No módulo ArcPy, a fonte de dados é representada no dicionário 'connectionProperties' conforme mostrado abaixo.

No geodatabase

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

No Serviço do ArcGIS Server

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

Procedimento

Para usar o dicionário 'connectionProperties', importe os módulos ArcPy e 'pprint'.

As etapas a seguir descrevem como alterar a fonte de dados de uma camada de referência a um geodatabase para uma URL de serviço.

  1. Importe os módulos necessários.
import arcpy, pprint
  1. Especifique os detalhes do projeto.
aprx=arcpy.mp.ArcGISProject('current') map=aprx.listMaps()[0] l=map.listLayers()[0]
  1. Chame o dicionário connectionProperties.
pprint.pprint(l.connectionProperties)
  1. Especifique o dicionário da fonte de dados atual (geodatabase).
Find_dic = {'connection_info':{'database': 'C:\\arcgis\\TEST\\Editing\\Test.gdb'},'dataset': 'Springs','workspace_factory': 'Arquivo Geodatabase'}
  1. Especifique o dicionário de URL do serviço.
replace_dic = {'connection_info':{'url':r'https://services.arcgis.com/Wl7Y1m92PbjtJs5n/arcgis/rest/services/None/FeatureServer'},'dataset': '0','workspace_factory': 'FeatureService'}
  1. Chame a função updateConnectionProperties() para atualizar a fonte de dados e salvar o arquivo do projeto.
l.updateConnectionProperties(Find_dic,replace_dic,True,False,False) aprx.save()

O seguinte mostra o script completo.

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()

O dicionário connectionProperties também pode atualizar a URL do serviço. As etapas abaixo descrevem como fazer isso.

  1. Siga as etapas 1 a 3 da seção acima.
  2. Defina um parâmetro para armazenar o dicionário.
conProp = l.connectionProperties
  1. Atualize a URL.
conProp['connection_info']['url'] = r'https://sampleserver6.arcgisonline.com/arcgis/rest/services/EmergencyFacilities/FeatureServer'
  1. Chame a função updateConnectionProperties() para atualizar a fonte de dados e salvar o arquivo do projeto.
l.updateConnectionProperties(l.connectionProperties,conProp) aprx.save()

O seguinte mostra o script completo.

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 do Artigo: 000021613

Obtenha suporte com IA

Resolva seu problema rapidamente com o chatbot de IA de suporte da Esri.

Comece a conversar agora

Informações Relacionadas

Descubra mais sobre este tema

Obtenha ajuda de especialistas do ArcGIS

Entre em contato com Suporte Técnico

Comece a conversar agora

Ir para as opções de download