Обновляет описатель тайлового слоя.
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 SubPython:
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())