Возвращает ID файла надписей (0 - *.L00, 1 - *.L01 и т.д.) слоя для заданного типа объектов.
Visual Basic:
Function GetLabelsID(Type) As Integer
Type - это либо ID (As Long) типа объектов, либо пользовательское название типа объектов (As String).
Значение -1 указывает на то, что надписи к данному типу не подключены.
Пользовательское название типа учитывает регистр: название, написанное иначе, чем в структуре слоя, даёт -1.
Метод возвращает ID подключённого варианта надписей, то есть того, у которого свойство LabelLayer.Enable равно True. Подключить вариант к типу можно методом SetLabelsID.
Данный метод является устаревшим, так как в текущей версии системы к каждому типу можно подключить несколько вариантов надписей одновременно.
Для проверки состояния подключения бирок следует получить свойство LabelLayer.Enable.
В случае неудачи возникает исключение с одним из следующих кодов:
Код
Описание
513
Слой не открыт. Операция проводится со слоем, который либо не загружен в карту, либо не открыт с помощью метода Open.
Visual Basic:
Sub Layer_GetLabelsID 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active If L.LabelLayers.Count = 0 Then MsgBox "У слоя нет вариантов надписей" Exit Sub End If 'Для каждого варианта надписей смотрим, подключен ли он к своему типу S = "Варианты надписей слоя:" For i = 0 To L.LabelLayers.Count - 1 TypeID = L.LabelLayers.Item(i).TypeID S = S & vbCrLf & "тип " & TypeID & ": вариант " & L.LabelLayers.Item(i).Id & _ ", подключен " & L.GetLabelsID(TypeID) Next MsgBox S End SubPython:
import zulu def Macro_Layer_GetLabelsID(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active if L.LabelLayers.Count == 0: print("У слоя нет вариантов надписей") return # Для каждого варианта надписей смотрим, подключен ли он к своему типу print("Варианты надписей слоя:") for i in range(L.LabelLayers.Count): ll = L.LabelLayers.Item(i) print("тип", ll.TypeId, ": вариант", ll.Id, ", подключен", L.GetLabelsID(ll.TypeId))