Сводка
Обеспечивает доступ к свойствам класса надписей слоя.
Описание
Объект LabelClass используется для управления свойствами надписывания, такими как выражения надписи или SQL-запросы, которые связаны с отдельными классами надписей слоя. Метод listLabelClasses для объекта Layer будет возвращать список объектов LabelClass.
Не все слои поддерживают надписывание, поэтому будет полезным протестировать это заранее с использованием метода supports для объекта Layer. Пример: if lyr.supports("SHOWLABELS"):
Свойства
Владение | Объяснение | Тип данных |
expression (чтение и запись) | Выражение отдельного класса надписей слоя использует либо анализаторы VBScript, JScript, либо анализатор Python, связанный с классом надписей. | String |
name (чтение и запись) | Имя отдельного класса надписей слоя. | String |
SQLQuery (чтение и запись) | SQL-запрос (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 таким образом, что не все точки оказываются подписанными. Подписываются только те из них, высота которых превышает 2000 метров.
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