HOW TO
Die Datenquelle eines Layers in einem Projekt referenziert die Feature-Class aus dem physischen Geodatabase-Speicherort auf einem Computer. Das Dataset kann ebenfalls eine URL referenzieren, wenn es als ArcGIS-Server-Service oder ArcGIS Online-Service veröffentlicht ist. Im Modul "ArcPy" wird die Datenquelle im Wörterbuch "connectionProperties" wie unten gezeigt dargestellt.
In der Geodatabase
{'connection_info': {'database': 'E:\\ArcGIS\\Project\\Database.gdb'}, 'dataset': 'layerXYZ', 'workspace_factory': 'File Geodatabase'}
ArcGIS-Server-Services
{'connection_info': {'url': 'http://sampleserver6.arcgisonline.com/arcgis/rest/services/911CallsHotspot/MapServer'}, 'dataset': '1', 'workspace_factory': 'FeatureService'}
Um das Wörterbuch "connectionProperties" zu verwenden, importieren Sie die Module "ArcPy" und "pprint".
Anhand der folgenden Schritte wird das Ändern der Datenquelle eines Layers von der Referenzierung einer Geodatabase in eine Service-URL beschrieben.
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()
Nachfolgend finden Sie das vollständige Skript.
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()
Das Wörterbuch connectionProperties kann auch die Service-URL aktualisieren. In den folgenden Schritten wird die Vorgehensweise beschrieben.
conProp = l.connectionProperties
conProp['connection_info']['url'] = r'https://sampleserver6.arcgisonline.com/arcgis/rest/services/EmergencyFacilities/FeatureServer'
l.updateConnectionProperties(l.connectionProperties,conProp) aprx.save()
Nachfolgend finden Sie das vollständige Skript.
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()
Artikel-ID: 000021613
Unterstützung durch ArcGIS-Experten anfordern
Beginnen Sie jetzt mit dem Chatten