Возвращает интерфейс ITileLayer для работы с тайловым слоем.
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 SubPython:
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())