Краткая информация
Предоставляет возможность добавления слоя к фрейму данных документа карты (.mxd) с использованием простых свойств размещения.
Обсуждение
AddLayer является удобным способом добавления слоя или составного слоя в документ карты. С ее помощью можно добавить новый слой с функцией автоматического упорядочивания во фрейм данных аналогично функции кнопки Add Data (Добавить данные) в ArcMap; она размещает слой с учетом правил определения веса слоя и типа геометрии. Другим выбором для размещения являются верхняя или нижняя часть фрейма данных Для получения информации о функциях более точного размещения слоя, обратитесь к функции InsertLayer (Вставить слой).
AddLayer является единственной функцией, с помощью которой можно добавить слой в пустой фрейм данных. AddLayer не позволяет добавлять слои в файл слоя или внутри составного слоя. Для получения информации о работе с файлами слоя, обратитесь к функциям Layer и AddLayerToGroup.
Добавляемый слой должен ссылаться на уже имеющийся слой (помните о том, что слой может также быть составным). Источник может находиться в файле слоя на диске, внутри общего документа карты или фрейма данных, внутри общего документа карты, но другого фрейма данных, либо даже в отдельном документе карты.
Способ отображения слоя в таблице содержания (TOC) после добавления зависит от способа отображения слоя источника. Например, некоторые слои полностью свернуты и не отражают свои стрелки в TOC. Эта настройка сохраняется в слое. Если слой поврежден и сохранен в файле слоя, а потом добавлен в документ карты, слой будет поврежден в новом документе карты при добавлении через AddLayer.
Синтаксис
AddLayer (data_frame, add_layer, {add_position})
Параметр | Объяснение | Тип данных |
data_frame | Ссылка на объект DataFrame в документе карты. | DataFrame |
add_layer | Ссылка на объект Layer, представляющий слой, выбираемый для добавления. Данная ссылка может ссылаться на файл слоя на диске или слой в документе карты. | Layer |
add_position | Константа, определяющая размещение добавленного слоя во фрейме данных.
(Значение по умолчанию — AUTO_ARRANGE) | String |
Пример кода
Пример 1 использования "AddLayer":
Следующий скрипт добавит новый слой из файла слоя (.lyr) на диске и разместит его в нижней части фрейма данных, называемого New Data Frame (Новым фреймом данных).
import arcpy
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "New Data Frame")[0]
addLayer = arcpy.mapping.Layer(r"C:\Project\Data\Orthophoto.lyr")
arcpy.mapping.AddLayer(df, addLayer, "BOTTOM")
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd, addLayer
Пример 2 использования "AddLayer":
Следующий скрипт добавит новый составной слой, называемый NE_Layers из другого независимого документа карты и использует функцию автоматического упорядочивания при размещении в нижней части фрейма данных, называемого New Data Frame (Новым фреймом данных).
import arcpy
#Reference layer in secondary map document
mxd2 = arcpy.mapping.MapDocument(r"C:\Project\ProjectTemplate.mxd")
df2 = arcpy.mapping.ListDataFrames(mxd2, "Layers")[0]
addLayer = arcpy.mapping.ListLayers(mxd2, "NE_Layers", df2)[0]
#Add layer into primary map document
mxd = arcpy.mapping.MapDocument(r"C:\Project\Project.mxd")
df = arcpy.mapping.ListDataFrames(mxd, "New Data Frame")[0]
arcpy.mapping.AddLayer(df, addLayer, "AUTO_ARRANGE")
#Save to a new map document and clear variable references
mxd.saveACopy(r"C:\Project\Project2.mxd")
del mxd, mxd2