RemoveLayer (arcpy.mapping)

Резюме

Обеспечивает возможность удаления слоя фрейма данных в документе карты (.mxd).

Обсуждение

RemoveLayer удаляет один или группу слоев из указанного фрейма данных. Если указанным критериям соответствует несколько слоев, будет удален только первый слой, если только скрипт не будет повторно обрабатывать каждый слой в списке возвращенных.

Синтаксис

RemoveLayer (data_frame, remove_layer)
ПараметрОбъяснениеТип данных
data_frame

Ссылка на объект DataFrame, который содержит удаляемый слой.

DataFrame
remove_layer

Ссылка на объект Layer, который представляет удаляемый слой.

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
9/11/2013