描述
LegendElement 对象可用于对属性进行访问,这些属性可以在页面布局中进行定位和调整大小以及修改其标题。它还提供对各个 LegendItem 的访问权限。
讨论
LegendElement 与 MapSurroundElement 非常相似。它与使用名为 mapFrame 的属性的 MapFrame 相关联,但也具有名为 title 的属性。
Layout 对象上的 listElements 方法将返回页面布局元素对象的 Python 列表。要仅返回 MapsurroundElements 的列表,应对 element_type 参数使用 MAPSURROUND_ELEMENT 常量。还可以使用 wildcard 对基于元素 name 的搜索进行进一步优化。有必要确保每个页面布局元素均具有唯一的名称,因为这样可以使用 ArcPy 脚本轻松进行区分。
默认情况下,添加到地图的图层将被自动添加到图例。这样便可实现制作含空地图和图例的布局,但在向地图添加新图层时这些项目会动态更新。
elementPositionX 和 elementPositionY 值取决于元素的锚点位置,该位置在格式选项卡上进行设置。添加图层时,如果倾向 LegendElement 向下延伸,则最好将锚点位置设置在左上角。
items 属性将返回 LegendItem 类列表。您可以单独对这些类进行修改,以进一步自定义图例的内容。LegendElement 类还提供 AddItem、MoveItem 和 RemoveItem 方法,以便您更好地管理图例中的项目。LegendElement 和 LegendItem 类仅提供对常用属性的访问权限。可以使用 Python CIM 访问对内容进行细化访问。两个类的帮助主题均提供了示例。
属性
属性 | 说明 | 数据类型 |
columnCount (可读写) | 图例中指定列的数量。此属性仅在将 fittingStrategy 设置为 AdjustFontSize、AdjustFrame 或 ManualColumns 时适用。 | Long |
elementHeight (可读写) | 元素的高度(以页面单位计)。 | Double |
elementPositionX (可读写) | 元素的锚点位置的 x 位置。分配或报告的单位为页面单位。 | Double |
elementPositionY (可读写) | 元素的锚点位置的 y 位置。分配或报告的单位为页面单位。 | Double |
elementRotation (可读写) | 相对于锚点位置旋转元素。正值表示顺时针旋转,负值表示逆时针旋转。 | Double |
elementWidth (可读写) | 元素的宽度(以页面单位计)。 | Double |
fittingStrategy (可读写) | 表示有效自适应策略方法的字符串。有效值如下:
| 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 | 此常数用于确定在图例内添加的图层的放置位置。
(默认值为 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 | 此常数用于确定移动的图层相对于参考图层的放置位置。
(默认值为 BEFORE) | String |
moveItem 方法用于移动图例中的图例项。可将 move_item 移动到 reference_item 之后或之前。
removeItem (remove_item)
参数 | 说明 | 数据类型 |
remove_item | 对 LegendItem 对象(表示要移除的项目)的引用。 | LegendItem |
removeItem 方法用于从图例中移除单个图例项。
代码示例
以下脚本将图层添加到包括 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