AddLayer (arcpy.mapping)

摘要

用于使用简易放置选项将图层添加到地图文档 (.mxd) 内的数据框中。

讨论

AddLayer 是一种向地图文档添加图层或图层组的简单方法。它可以使用自动排列逻辑添加图层,将新图层放置在数据框中,这与添加数据按钮在 ArcMap 中的工作方式相似;AddLayer 根据图层权重规则和几何类型放置图层。其他放置选择为放置在数据框的顶部或底部。有关更精确的图层放置选项的信息,请参阅 InsertLayer 函数。

AddLayer 是唯一一个能向空数据框添加图层的函数。AddLayer 不允许将多个图层添加到一个图层文件或图层组中。如果您对管理图层文件感兴趣,请参阅 LayerAddLayerToGroup 函数。

添加的图层必须参考已存在的图层(请注意,图层也可以是图层组)。源图层可以来自磁盘上的图层文件、同一地图文档和数据框、同一地图文档不同数据框乃至完全独立的地图文档。

添加图层后,图层在内容列表 (TOC) 中的显示方式取决于源图层及其显示方式。例如,在 TOC 中,有些图层完全折叠且不显示其符号。此设置内置在图层中。如果图层折叠且保存在图层文件中,然后被添加到地图文档中,则通过 AddLayer 添加该图层时,图层在新的地图文档中将显示为折叠状态。

语法

AddLayer (data_frame, add_layer, {add_position})
参数说明数据类型
data_frame

A reference to a DataFrame object within a map document.

DataFrame
add_layer

A reference to a Layer object representing the layer to be added. This reference can point to a layer file on disk or a layer within a map document.

Layer
add_position

A constant that determines the placement of the added layer within a data frame.

  • AUTO_ARRANGEAutomatically places the layer similar to how the Add Data button works in ArcMap
  • BOTTOMPlaces the layer at the bottom of the data frame
  • TOPPlaces the layer at the top of the data frame

(默认值为 AUTO_ARRANGE)

String

代码实例

添加图层 (AddLayer) 示例 1:

以下脚本会从磁盘上的图层文件 (.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
添加图层 (AddLayer) 示例 2:

以下脚本会从另一独立的地图文档添加一个名为 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