HOW TO
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.
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
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
Unterstützung durch ArcGIS-Experten anfordern
Beginnen Sie jetzt mit dem Chatten