SetLayerDef method (ITileLayer)

Обновляет описатель тайлового слоя.

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

ITileLayer

Синтаксис:

Visual Basic:

Function SetLayerDef(Def As TileLayerDef) As Boolean

Def - объект с описанием параметров слоя.

Описание:

Обычный порядок такой: получить текущий описатель методом GetLayerDef, изменить нужные параметры, вернуть его слою. При успехе метод возвращает True.

После SetLevelRange с аргументами 2 и 16 и вызова SetLayerDef повторный GetLayerDef отдаёт GetMinLevel равным 2 и GetMaxLevel равным 16.

Интерфейс возвращается для любого слоя, а не только для тайлового, поэтому тип слоя следует проверять отдельно: свойство Type должно быть равно eTileLayer (108) для локального слоя или eRemoteTileLayer (109) для слоя на ZuluServer, см. eLayerType.

Если слой тайловым не является, метод возвращает False.

Пример:

Visual Basic:

Sub ITileLayer_SetLayerDef
'Создаем тайловый слой OpenStreetMap
Set Def = CreateObject("ZuluLib.TileLayerDef")
Def.SetCRSCode "EPSG:3857"
Def.SetModel 3
Def.SetQueryTemplateString "http://a.tile.openstreetmap.org/"
Set Tools = CreateObject("ZuluLib.ZuluTools")
Tools.TileLayerCreate "C:\Data\osm.zww", Def
'Открываем его и берем интерфейс тайлового слоя
Set L = CreateObject("ZuluLib.Layer")
L.Open "C:\Data\osm.zww"
Set T = L.TileLayer
Set d = T.GetLayerDef
'Ограничиваем диапазон уровней вывода плиток
d.SetLevelRange 2, 16
MsgBox "Описатель обновлен: " & T.SetLayerDef(d) & vbCrLf & _
       "Уровни теперь: " & T.GetLayerDef.GetMinLevel & " .. " & T.GetLayerDef.GetMaxLevel
End Sub

Python:

import zulu

def Macro_ITileLayer_SetLayerDef():
    # Создаем тайловый слой OpenStreetMap
    Def = zulu.TileLayerDef()
    Def.SetCRSCode("EPSG:3857")
    Def.SetModel(3)
    Def.SetQueryTemplateString("http://a.tile.openstreetmap.org/")
    zulu.ZuluTools().TileLayerCreate(r"C:\Data\osm.zww", Def)
    # Открываем его и берем интерфейс тайлового слоя
    L = zulu.Layer()
    L.Open(r"C:\Data\osm.zww")
    T = L.TileLayer
    d = T.GetLayerDef()
    # Ограничиваем диапазон уровней вывода плиток
    d.SetLevelRange(2, 16)
    print("Описатель обновлен:", T.SetLayerDef(d))
    d = T.GetLayerDef()
    print("Уровни теперь:", d.GetMinLevel(), "..", d.GetMaxLevel())