LabelClass

Краткая информация

Обеспечивает доступ к свойствам класса надписей слоя.

Обсуждение

Объект LabelClass используется для управления свойствами надписывания, такими как выражения надписи или SQL-запросы, которые связаны с отдельными классами надписей слоя. Метод listLabelClasses для объекта Layer будет возвращать список объектов LabelClass.

Не все слои поддерживают надписывание, поэтому будет полезным протестировать это заранее с использованием метода supports для объекта Layer. Пример:

if lyr.supports("SHOWLABELS"):
Если данное выражение будет True (Истинным), то вы будете способны изменить все свойства класса надписей.

Свойства

СвойствоОписаниеТип данных
expression
(чтение и запись)

Выражение отдельного класса надписей слоя использует либо анализаторы VBScript, JScript, либо анализатор Python, связанный с классом надписей.

String
name
(чтение и запись)

Имя отдельного класса надписей слоя.

String
SQLQuery
(чтение и запись)

SQL-запрос (SQLQuery) отдельного класса надписей слоя. Это бывает полезным, когда необходимо ограничить число надписей для определенных объектов.

String
visible
(чтение и запись)

Если True, то класс надписей является видимым. Если False, то класс надписей является невидимым.

Boolean

Пример кода

Пример 1 для LabelClass

Следующий скрипт будет печатать свойства классов надписей только для тех слоев, для которых надписи включены и которые поддерживают свойство 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
Пример 2 для LabelClass

Следующий скрипт находит слой с именем 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