描述
用于访问图层的标注类属性。
讨论
LabelClass 对象用于管理与图层的单个标注类相关联的标注属性(如标注表达式或 SQL 查询)。Layer 对象上的 listLabelClasses 方法将返回 LabelClass 对象列表。
并非所有图层都支持标注,因此在 Layer 对象上使用 supports 方法提前进行测试是十分有用的。例如: if lyr.supports("SHOWLABELS"):
属性
属性 | 说明 | 数据类型 |
expression (可读写) | 图层的单个标注类表达式(使用与标注类相关的 VBScript、JScript 或 Python 分析程序)。 | String |
name (可读写) | 图层的单个标注类名称。 | String |
SQLQuery (可读写) | 图层的单个标注类 SQLQuery。这在将标注限制为某些要素方面十分有用。 | String |
visible (可读写) | 如果为 True,标注类则可见。如果为 False,则不可见。 | Boolean |
代码示例
以下脚本仅会打印已打开标注并支持 showLabels 属性的图层的标注类属性。
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
m = aprx.listMaps("Yosemite National Park")[0]
for lyr in m.listLayers():
if lyr.supports("SHOWLABELS"):
if lyr.showLabels:
print("Layer name: " + lyr.name)
for lblClass in lyr.listLabelClasses():
print("\t Class Name: \t" + lblClass.name)
print("\t Expression: \t" + lblClass.expression)
print("\t SQL Query: \t" + lblClass.SQLQuery)
del aprx
以下脚本会查找名为 Points of Interest 的图层并会更改名为 Summit 的特定标注类的标注类属性,从而不会对所有山峰进行标注。仅会对高程超过 2,000 米的山峰进行标注。
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
m = aprx.listMaps("Yosemite National Park")[0]
lyr = m.listLayers("Points of Interest")[0]
if lyr.supports("SHOWLABELS"):
lblClass = lyr.listLabelClasses("Summit")[0]
lblClass.expression = "Name"
lblClass.SQLQuery = "Type_ = 'summit' And Elevation > 2000"
lblClass.visible = True
aprx.save()
del aprx