Instrução
As feições são adicionadas ao mapa para visualização ao executar qualquer processo no ArcGIS Pro. Quando adicionadas a um mapa aberto, essas feições são convertidas automaticamente em um arquivo de camada. Para que uma feição em um geodatabase seja adicionada a um mapa usando um script Python, a feição deve ser convertida em um arquivo de camada. Portanto, para colocar uma feição em um mapa sem abrir o software ArcGIS Pro, as ferramentas Criar Camada de Feição e Salvar no Arquivo de Camada são usadas no script para converter a feição desejada de um geodatabase em um arquivo de camada.
O fluxo de trabalho a seguir descreve como adicionar feições a um mapa existente usando um script de Python.
import arcpy
arcpy.env.workspace = r"<folder_location>\<geodatabase.gdb>" project_path = r"<folder_location>\<project_name.aprx>" aprx = arcpy.mp.ArcGISProject(project_path)
layer = r"<folder_location>\<geodatabase.gdb>\<file_name>"
layers_out = "<output_file_name>"
output_location = r"<folder_location>\{}.lyrx".format(layers_out) #Same as project path
arcpy.management.MakeFeatureLayer(in_layer, "<output_file_name>")
arcpy.management.SaveToLayerFile("<output_file_name>" , layers_out)
insertLyr = arcpy.mp.LayerFile(output_location)
m = aprx.listMaps("*")[0]
refLyr = m.listLayers("file_name")[0]
m.insertLayer(refLyr, insertLyr, "BEFORE")
aprx.save()
del aprx
O bloco de código abaixo demonstra o script completo.
import arcpy
arcpy.env.workspace = r"C:\USER\Desktop\Test\test.gdb"
project_path = r"C:\USER\Desktop\Test\Test_Project.aprx"
aprx = arcpy.mp.ArcGISProject(project_path)
layer = r"C:\USER\Desktop\Test\test.gdb\Layer_Test" #The feature name in the geodatabase
layers_out = "Layer_Test" #The file name for the output layer
output_location = r"C:\USER\Desktop\Test\{}.lyrx".format(layers_out)
arcpy.management.MakeFeatureLayer(in_layer, "Layer_Test")
arcpy.management.SaveToLayerFile("Layer_Test" , layers_out)
insertLyr = arcpy.mp.LayerFile(output_location)
m = aprx.listMaps("*")[0]
refLyr = m.listLayers("Existing_Layer")[0]
m.insertLayer(refLyr, insertLyr, "BEFORE") #Insert the new layer onto the map before the specified existing layer
aprx.save()
del aprx #Close the project and delete the lock file
ID do Artigo: 000028522
Obtenha ajuda de especialistas do ArcGIS
Comece a conversar agora