Instrução

Posicionar uma camada de um geodatabase em um mapa do ArcGIS Pro usando um script Python

Last Published: February 20, 2025

Descriçã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.

Solução ou Solução Provisória

  1. Importe os módulos necessários.
import arcpy
  1. Especifique a área de trabalho e a localização do arquivo do ArcGIS Project.
arcpy.env.workspace = r"<folder_location>\<geodatabase.gdb>"

project_path = r"<folder_location>\<project_name.aprx>"
aprx = arcpy.mp.ArcGISProject(project_path)
  1. Especifique os parâmetros a serem usados ​​nas ferramentas Criar Camada de Feição e Salvar em Arquivo de Camada.
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
  1. Solicite as ferramentas Criar Camada de Feição e Salvar em Arquivo de Camada.
arcpy.management.MakeFeatureLayer(in_layer, "<output_file_name>")
arcpy.management.SaveToLayerFile("<output_file_name>" , layers_out)
  1. Insira a camada no mapa em referência a uma camada existente.
insertLyr = arcpy.mp.LayerFile(output_location)
m = aprx.listMaps("*")[0]
refLyr = m.listLayers("file_name")[0]
m.insertLayer(refLyr, insertLyr, "BEFORE")
  1. Salve o arquivo do projeto.
aprx.save()
  1. Limpe o arquivo de bloqueio do projeto.
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 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