Краткая информация
Обеспечивает возможность удаления слоя фрейма данных в документе карты (.mxd).
Обсуждение
RemoveLayer удаляет один или группу слоев из указанного фрейма данных. Если указанным критериям соответствует несколько слоев, будет удален только первый слой, если только скрипт не будет повторно обрабатывать каждый слой в списке возвращенных.
Синтаксис
RemoveLayer (data_frame, remove_layer)
Пример кода
RemoveLayer, пример:
Следующий скрипт удаляет все слои с именем Rivers из документа карты.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
for df in arcpy.mapping.ListDataFrames(mxd):
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name.lower() == "rivers":
arcpy.mapping.RemoveLayer(df, lyr)
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd
RemoveLayer, пример 2
Следующий скрипт удаляет слой из фрейма данных County Maps на основе имени и источника данных, поскольку во фрейме имеются другие слои с тем же именем, но другим источником данных.
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "County Maps")[0]
for lyr in arcpy.mapping.ListLayers(mxd, "", df):
if lyr.name.lower() == "lakes":
if lyr.dataSource == r"C:\Project\Data\Data.mdb\NE_Lakes":
arcpy.mapping.RemoveLayer(df, lyr)
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd