TileLayer property (Layer)

Возвращает интерфейс ITileLayer для работы с тайловым слоем.

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

Layer

Синтаксис:

Visual Basic:

Property TileLayer As ITileLayer

read-only

Описание:

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

Отличить один случай от другого проще всего по свойству Type: у тайлового слоя оно равно 108, у обычного векторного - 70.

На обычном слое объект все равно отдается и на вызовы не ругается: GetLayerDef возвращает описатель, GetShiftX - ноль, а GetLevelBoundsRectangle - Nothing. Исключения не возникает, поэтому проверять нужно тип слоя заранее.

Пример:

Visual Basic:

Sub Layer_TileLayer
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
S = "Слой " & L.UserName & ", тип " & L.Type
If L.Type <> 108 Then
  S = S & vbCrLf & "это не тайловый слой: методы ITileLayer работать не будут"
End If
'Объект отдается в любом случае
Set TL = L.TileLayer
S = S & vbCrLf & "сдвиг тайлов: " & TL.GetShiftX & "; " & TL.GetShiftY
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_TileLayer():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    print("Слой", L.UserName, ", тип", L.Type)
    if L.Type != 108:
        print("это не тайловый слой: методы ITileLayer работать не будут")
    # Объект отдается в любом случае
    tl = L.TileLayer
    print("сдвиг тайлов:", tl.GetShiftX(), ";", tl.GetShiftY())