AddLayer (arcpy.mapping)

Краткая информация

Предоставляет возможность добавления слоя к фрейму данных документа карты (.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Автоматически размещает слой аналогично функции кнопки Add Data (Добавить данные) в ArcMap
  • BOTTOMРазмещает слой в нижней части фрейма данных.
  • TOPРазмещает слой в верхней части фрейма данных.

(Значение по умолчанию — 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
5/10/2014