Ich versuche, verschiedene Aufgaben in ArcGIS Desktop (im Allgemeinen mit ArcMap) mit Python zu automatisieren, und ich benötige immer wieder eine Möglichkeit, der aktuellen Karte ein Shapefile hinzuzufügen. (Und dann mach was draus, aber das ist eine andere Geschichte).
Das Beste, was ich bisher tun kann, ist, der aktuellen Karte eine Layer- Datei hinzuzufügen , indem Sie Folgendes verwenden ("addLayer" ist ein Layer-Dateiobjekt):
def AddLayerFromLayerFile(addLayer):
import arcpy
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd, "Layers")[0]
arcpy.mapping.AddLayer(df, addLayer, "AUTO_ARRANGE")
arcpy.RefreshActiveView()
arcpy.RefreshTOC()
del mxd, df, addLayer
Da meine Rohdaten jedoch immer Shapefiles sind, muss ich sie öffnen können. (Äquivalent: Konvertieren Sie ein Shapefile in eine Layer-Datei, ohne es zu öffnen, aber ich würde es vorziehen, dies nicht zu tun.)
Feature-Layer erstellen (Datenverwaltung) http://help.arcgis.com/de/arcgisdesktop/10.0/help/index.html#//00170000006p000000.htm
Ich habe es gerade im Python-Fenster von ArcMap ausprobiert und es wird direkt zu meiner Karte hinzugefügt (ich musste meinen Datenrahmen nicht abrufen und AddLayer aufrufen).
arcpy.MakeFeatureLayer_management('r:/temp/a.shp','test')
quelle
arcpy.SaveToLayerFile_management('test', 'r:/temp/evilmonkey.lyr', 'ABSOLUTE')
Wenn Sie nicht über die Ebene speichern möchten , und Sie nur wollen es weg,arcpy.Delete_management('test')
.