LegendElement

描述

LegendElement 对象可用于对属性进行访问,这些属性可以在页面布局中进行定位和调整大小以及修改其标题。它还提供对各个 LegendItem 的访问权限。

讨论

LegendElementMapSurroundElement 非常相似。它与使用名为 mapFrame 的属性的 MapFrame 相关联,但也具有名为 title 的属性。

Layout 对象上的 listElements 方法将返回页面布局元素对象的 Python 列表。要仅返回 MapsurroundElements 的列表,应对 element_type 参数使用 MAPSURROUND_ELEMENT 常量。还可以使用 wildcard 对基于元素 name 的搜索进行进一步优化。有必要确保每个页面布局元素均具有唯一的名称,因为这样可以使用 ArcPy 脚本轻松进行区分。

默认情况下,添加到地图的图层将被自动添加到图例。这样便可实现制作含空地图和图例的布局,但在向地图添加新图层时这些项目会动态更新。

elementPositionXelementPositionY 值取决于元素的锚点位置,该位置在格式选项卡上进行设置。添加图层时,如果倾向 LegendElement 向下延伸,则最好将锚点位置设置在左上角。

items 属性将返回 LegendItem 类列表。您可以单独对这些类进行修改,以进一步自定义图例的内容。LegendElement 类还提供 AddItemMoveItemRemoveItem 方法,以便您更好地管理图例中的项目。LegendElementLegendItem 类仅提供对常用属性的访问权限。可以使用 Python CIM 访问对内容进行细化访问。两个类的帮助主题均提供了示例。

属性

属性说明数据类型
columnCount
(可读写)

图例中指定列的数量。此属性仅在将 fittingStrategy 设置为 AdjustFontSizeAdjustFrameManualColumns 时适用。

Long
elementHeight
(可读写)

元素的高度(以页面单位计)。

Double
elementPositionX
(可读写)

元素的锚点位置的 x 位置。分配或报告的单位为页面单位。

Double
elementPositionY
(可读写)

元素的锚点位置的 y 位置。分配或报告的单位为页面单位。

Double
elementRotation
(可读写)

相对于锚点位置旋转元素。正值表示顺时针旋转,负值表示逆时针旋转。

Double
elementWidth
(可读写)

元素的宽度(以页面单位计)。

Double
fittingStrategy
(可读写)

表示有效自适应策略方法的字符串。有效值如下:

  • AdjustFontSize调整字号。
  • AdjustColumns调整列。
  • AdjustColumnsAndFont调整列和字号。
  • AdjustFrame调整框架。
  • ManualColumns手动列。
String
items
(只读)

返回相关 LegendItem 类列表。您不能直接设置此属性,但是,可以遍历图例项并修改其属性。

List
mapFrame
(可读写)

对关联 MapFrame 的引用。

MapFrame
name
(可读写)

元素的名称。有必要确保所有元素均具有唯一名称,因为这样可以轻松对其进行引用。

String
showTitle
(可读写)

一个布尔值,用于控制标题是否显示在图例中。

Boolean
syncLayerOrder
(可读写)

一个布尔值,用于控制图例中的项目是否与地图中图层的顺序相同。

Boolean
syncLayerVisibility
(可读写)

一个布尔值,用于控制项目是否应自动出现在图例中(如果图例在地图中可见)。

Boolean
syncNewLayer
(可读写)

一个布尔值,用于控制当项目被添加到地图中时是否应自动将该项目添加到图例中。

Boolean
syncReferenceScale
(可读写)

一个布尔值,用于控制图例中的符号是否与地图中符号的比例相匹配(如果设置了参考比例)。

Boolean
title
(可读写)

表示图例标题的文本字符串。

String
type
(只读)

返回 LEGEND_ELEMENT 的值。

String
visible
(可读写)

如果元素在布局上可见,则返回 True。打印或导出之前,您可以打开和关闭元素的可见性,而不必从页面移除不需要的对象。

Boolean

方法概述

方法说明
addItem (layer, {add_position})

您可以使用基本放置选项将图层添加到图例中。

moveItem (reference_item, move_item, {move_position})

您可以将图例项移动到图例中的特定位置。

removeItem (remove_item)

允许您从图例中移除图例项。

方法

addItem (layer, {add_position})
参数说明数据类型
layer

Layer 对象(将要添加到图例中的图层表示为 LegendItem)的引用。

Layer
add_position

此常数用于确定在图例内添加的图层的放置位置。

  • BOTTOM在 TOC 图层堆叠底部放置单个或多个图层。
  • TOP在 TOC 图层堆叠顶部放置单个或多个图层。

(默认值为 TOP)

String
返回值
数据类型说明
LegendItem

LegendItem 对象。

addItem 方法用于将图层添加至布局中的图例。默认 add_position 可将图层添加到图例项列表的顶部,因此该图层显示在首位。有关更精确的图例项放置,请参阅 moveItem 方法。

moveItem (reference_item, move_item, {move_position})
参数说明数据类型
reference_item

LegendItem 对象表示现有图例项,该项目用于确定移动 move_item 的相对位置。

LegendItem
move_item

LegendItem 对象(表示要移动的图层)的引用。

Layer
move_position

此常数用于确定移动的图层相对于参考图层的放置位置。

  • AFTER将图例项移动到 reference_item 之后或之下。
  • BEFORE将图例项移动到 reference_item 之前或之上。

(默认值为 BEFORE)

String

moveItem 方法用于移动图例中的图例项。可将 move_item 移动到 reference_item 之后之前

removeItem (remove_item)
参数说明数据类型
remove_item

LegendItem 对象(表示要移除的项目)的引用。

LegendItem

removeItem 方法用于从图例中移除单个图例项。

代码示例

LegendElement 示例 1

以下脚本将图层添加到包括 Legend 已插入图例元素的地图。图层将自动添加到图例中且将更新其标题。

import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
lyr1 = arcpy.mp.LayerFile(r"C:\Projects\Yosemite\LYRs\Trails.lyrx")
lyr2 = arcpy.mp.LayerFile(r"C:\Projects\Yosemite\LYRs\PointsOfInterest.lyrx")
m = aprx.listMaps("Yose*")[0]
m.addLayer(lyr1, "TOP")
m.addLayer(lyr2, "TOP")
lyt = aprx.listLayouts("Main Attrations")[0]
legend = lyt.listElements("LEGEND_ELEMENT", "Legend")[0]
legend.title = "Yosemite National Park"
aprx.save()
del aprx