GetDevices method (ITrackingLayer)

Возвращает набор данных IZbDataset с описанием устройств слоя трекинга.

Применяется к:

ITrackingLayer

Синтаксис:

Visual Basic:

Function GetDevices() As IZbDataset

Описание:

Свойство TrackingLayer объекта Layer возвращается для любого слоя, а не только для слоя трекинга. Поэтому проверять надо результат самого метода: если слой слоем трекинга не является, GetDevices возвращает Nothing.

Слои трекинга размещаются на ZuluServer, поэтому и набор устройств возвращается только для слоя, открытого с сервера.

Пример:

Visual Basic:

Sub ITrackingLayer_GetDevices
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set TR = L.TrackingLayer
'Интерфейс отдается для любого слоя, поэтому проверяем результат метода
Set ds = TR.GetDevices
If ds Is Nothing Then
  MsgBox "Слой не является слоем трекинга"
Else
  'Набор данных - это курсор по записям, обходим его от первой до Eof
  n = 0
  ds.MoveFirst
  Do While Not ds.Eof
    n = n + 1
    ds.MoveNext
  Loop
  MsgBox "Полей в описании: " & ds.FieldCount & vbCrLf & "Устройств: " & n
End If
End Sub

Python:

import zulu

def Macro_ITrackingLayer_GetDevices():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    TR = L.TrackingLayer
    # Интерфейс отдается для любого слоя, поэтому проверяем результат метода
    ds = TR.GetDevices()
    if ds is None:
        print("Слой не является слоем трекинга")
    else:
        # Набор данных - это курсор по записям, обходим его от первой до Eof
        n = 0
        ds.MoveFirst()
        while not ds.Eof:
            n += 1
            ds.MoveNext()
        print("Полей в описании:", ds.FieldCount)
        print("Устройств:", n)