Подключает к заданному типу объектов слоя надписи из файла с указанным ID (0 - *.L00, 1 - *.L01 и т.д.).
Visual Basic:
SubSetLabelsID(Type, Id As Integer)
Type - это либо ID (As Long) типа объектов, либо пользовательское название типа объектов (As String).
Id - идентификатор подключаемого файла надписей.
Значение для типа -1 указывает на то, что надписи для данного типа отключаются. Если файл с указанным идентификатором не найден или не относится к заданному типу объектов, ID надписей для данного типа принимает значение -1.
Подключение видно и с другой стороны: у соответствующего варианта надписей из коллекции LabelLayers свойство Enable становится True, а после отключения (-1) - снова False. Проверить результат позволяет метод GetLabelsID.
Тип задается и номером, и названием - результат одинаковый. Метод ничего не возвращает и на неверные данные не жалуется: несуществующее название типа, несуществующий ID типа и ID файла надписей, которого нет, проходят без ошибки.
Неверный ID уже подключенные надписи не сбрасывает: попытка подключить несуществующий вариант оставляет подключенным прежний. А вот вариант, который относится к другому типу, дает -1, то есть надписи у типа пропадают.
Пример подключает к типу «Участки» первый вариант надписей и отключает его обратно.
Visual Basic:
Sub Layer_SetLabelsID 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set LL = L.LabelLayers S = "Вариантов надписей: " & LL.Count S = S & vbCrLf & "у типа 6 сейчас: " & L.GetLabelsID(6) 'Подключаем типу 6 вариант с ID 0 L.SetLabelsID 6, 0 S = S & vbCrLf & "после подключения: " & L.GetLabelsID(6) & ", вариант включен: " & LL.Item(0).Enable 'Отключаем надписи у типа L.SetLabelsID 6, -1 S = S & vbCrLf & "после отключения: " & L.GetLabelsID(6) & ", вариант включен: " & LL.Item(0).Enable MsgBox S End SubPython:
import zulu def Macro_Layer_SetLabelsID(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active ll = L.LabelLayers print("Вариантов надписей:", ll.Count) print("у типа 6 сейчас:", L.GetLabelsID(6)) # Подключаем типу 6 вариант с ID 0 L.SetLabelsID(6, 0) print("после подключения:", L.GetLabelsID(6), ", вариант включен:", ll.Item(0).Enable) # Отключаем надписи у типа L.SetLabelsID(6, -1) print("после отключения:", L.GetLabelsID(6), ", вариант включен:", ll.Item(0).Enable)