Возвращает габариты бирок надписей слоя в виде коллекции BoundingBoxes.
Visual Basic:
Function GetBoundingBoxes(flags As Long) As BoundingBoxes
flags - зарезервирован, должен быть нулем.
Visual Basic:
Sub ZLabels_GetBoundingBoxes 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active If L.LabelLayers.Count = 0 Then MsgBox "У активного слоя нет подписей" Exit Sub End If 'Берем первый подключенный к слою файл надписей (нумерация с нуля) Set LL = L.LabelLayers.Item(0) 'Получаем габариты бирок. Параметр flags зарезервирован и должен быть нулем Set Boxes = LL.Labels.GetBoundingBoxes(0) 'Перебираем коллекцию (нумерация с нуля) s = "Бирок: " & Boxes.Count & vbCrLf For i = 0 To Boxes.Count - 1 Set B = Boxes.Item(i) Set R = B.Rectangle s = s & "ключ " & B.ElemID & ": " & R.Xmin & ", " & R.Ymin & _ " - " & R.Xmax & ", " & R.Ymax & vbCrLf Next MsgBox(s) End SubPython:
import zulu def Macro_ZLabels_GetBoundingBoxes(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active if L.LabelLayers.Count == 0: print("У активного слоя нет подписей") return # Берем первый подключенный к слою файл надписей (нумерация с нуля) LL = L.LabelLayers.Item(0) # Получаем габариты бирок. Параметр flags зарезервирован и должен быть нулем Boxes = LL.Labels.GetBoundingBoxes(0) # Перебираем коллекцию (нумерация с нуля) print("Бирок:", Boxes.Count) for i in range(Boxes.Count): B = Boxes.Item(i) R = B.Rectangle print("ключ %s: %s, %s - %s, %s" % (B.ElemID, R.Xmin, R.Ymin, R.Xmax, R.Ymax))