HOW TO

Platzieren eines Layers aus einer Geodatabase auf eine ArcGIS Pro-Karte mit einem Python-Skript

Last Published: February 20, 2025

Beschreibung

Features werden der Karte zur Visualisierung hinzugefügt, wenn ein Prozess in ArcGIS Pro ausgeführt wird. Wenn sie zu einer geöffneten Karte hinzugefügt werden, werden diese Features automatisch in eine Layer-Datei konvertiert. Um ein Feature in einer Geodatabase mit einem Python-Skript zu einer Karte hinzuzufügen, muss das Feature in eine Layer-Datei konvertiert werden. Daher werden zum Platzieren eines Features auf eine Karte, ohne die ArcGIS Pro-Software zu öffnen, die Werkzeuge "Feature-Layer erstellen" und "In Layer-Datei speichern" im Skript verwendet, um das gewünschte Feature aus einer Geodatabase in eine Layer-Datei zu konvertieren.

Der folgende Workflow beschreibt, wie Sie Features mit einem Python-Skript zu einer vorhandenen Karte hinzufügen.

Lösung oder Problemumgehung

  1. Importieren Sie die erforderlichen Module.
import arcpy
  1. Geben Sie den Workspace und den Dateispeicherort des ArcGIS-Projekts an.
arcpy.env.workspace = r"<folder_location>\<geodatabase.gdb>"

project_path = r"<folder_location>\<project_name.aprx>"
aprx = arcpy.mp.ArcGISProject(project_path)
  1. Geben Sie die Parameter ein, die in den Werkzeugen "Feature-Layer erstellen" und "In Layer-Datei speichern" verwendet werden.
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. Rufen Sie die Werkzeuge "Feature-Layer erstellen" und "In Layer-Datei speichern" auf.
arcpy.management.MakeFeatureLayer(in_layer, "<output_file_name>")
arcpy.management.SaveToLayerFile("<output_file_name>" , layers_out)
  1. Fügen Sie den Layer in Bezug auf einen vorhandenen Layer in der Karte ein.
insertLyr = arcpy.mp.LayerFile(output_location)
m = aprx.listMaps("*")[0]
refLyr = m.listLayers("file_name")[0]
m.insertLayer(refLyr, insertLyr, "BEFORE")
  1. Speichern Sie die Projektdatei.
aprx.save()
  1. Löschen Sie die Sperrdatei des Projekts.
del aprx

Im folgenden Code-Block finden Sie das vollständige Skript.

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

Artikel-ID: 000028522

Holen Sie sich Unterstützung mit KI

Lösen Sie Ihr Problem schnell mit dem Esri Support AI Chatbot.

Beginnen Sie jetzt mit dem Chatten

Zugehörige Informationen

Weitere Informationen zu diesem Thema erkunden

Unterstützung durch ArcGIS-Experten anfordern

An den technischen Support wenden

Beginnen Sie jetzt mit dem Chatten

Zu Download-Optionen wechseln