描述
LegendElement 对象可用于对属性进行访问,这些属性可以在页面布局中进行定位和调整大小以及修改其标题。
讨论
LegendElement 与 MapSurroundElement 非常相似。它与使用名为 mapFrame 属性的地图框相关联,但也具有名为 title 的属性。
Layout 对象上的 listElements 方法将返回页面布局元素对象的 Python 列表。要仅返回 MapsurroundElements 的列表,应对 element_type 参数使用 MAPSURROUND_ELEMENT 常量。还可以使用 wildcard 对基于元素 name 的搜索进行进一步优化。有必要确保每个页面布局元素均具有唯一的名称,因为这样可以使用 ArcPy 脚本轻松进行区分。
默认情况下,添加到地图的图层将被自动添加到图例。这样便可实现制作含空地图和图例的布局,但在向地图添加新图层时这些项目会动态更新。
elementPositionX 和 elementPositionY 值取决于元素的锚点位置,该位置在格式选项卡上进行设置。添加图层时,如果倾向 LegendElement 向下延伸,则最好将锚点位置设置在左上角。
属性
属性 | 说明 | 数据类型 |
elementHeight (可读写) | 元素的高度(以页面单位计)。 | Double |
elementPositionX (可读写) | 元素的锚点位置的 x 位置。分配或报告的单位为页面单位。 | Double |
elementPositionY (可读写) | 元素的锚点位置的 y 位置。分配或报告的单位为页面单位。 | Double |
elementRotation (可读写) | 相对于锚点位置旋转元素。正值表示顺时针旋转,负值表示逆时针旋转。 | Double |
elementWidth (可读写) | 元素的宽度(以页面单位计)。 | Double |
mapFrame (可读写) | 对关联 MapFrame 的引用。 | MapFrame |
name (可读写) | 元素的名称。有必要确保所有元素均具有唯一名称,因为这样可以轻松对其进行引用。 | String |
showTitle (可读写) | 一个布尔值,用于控制标题是否显示在图例中。 | Boolean |
syncLayerOrder (可读写) | 一个布尔值,用于控制图例中的项目是否与地图中图层的顺序相同。 | Boolean |
syncLayerVisibility (可读写) | 一个布尔值,用于控制项目是否应自动出现在图例中(如果图例在地图中可见)。 | Boolean |
syncNewLayer (可读写) | 一个布尔值,用于控制当项目在添加到地图时是否应自动添加到图例中。 | Boolean |
syncReferenceScale (可读写) | 一个布尔值,用于控制图例中的符号是否与地图中符号的比例相匹配(如果设置了参考比例)。 | Boolean |
title (可读写) | 表示图例标题的文本字符串。 | String |
type (只读) | 返回 LEGEND_ELEMENT 的值。 | String |
visible (可读写) | 如果元素在布局上可见,则返回 True。进行打印或导出前,您可以切换元素的可见性,而不必从页面移除不需要的对象。 | Boolean |
代码示例
以下脚本将图层添加到包括 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