Возвращает прямоугольник ZRectangle с габаритами, которые занимает заданный уровень слоя.
Visual Basic:
Function GetLevelBoundsRectangle(z As Long) As ZRectangle
z - уровень тайловой системы.
Габариты возвращаются в системе координат слоя. Уровень занимает больше места, чем сам мир: сторона прямоугольника равна ширине мира плюс ровно один тайл этого уровня. Для EPSG:3857 при ширине мира 40 075 016,69 м это даёт 80 150 033,37 м на нулевом уровне и 40 114 152,44 м на десятом.
Габариты одного тайла возвращает GetTileBoundsRectangle, а границы номеров плиток — GetLevelLimits.
Интерфейс возвращается для любого слоя, а не только для тайлового, поэтому тип слоя следует проверять отдельно: свойство Type должно быть равно eTileLayer (108) для локального слоя или eRemoteTileLayer (109) для слоя на ZuluServer, см. eLayerType.
Если слой тайловым не является, метод возвращает Nothing.
Visual Basic:
Sub ITileLayer_GetLevelBoundsRectangle 'Создаем тайловый слой 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 rc = T.GetLevelBoundsRectangle(1) MsgBox "Габариты уровня 1:" & vbCrLf & _ "X от " & rc.Xmin & " до " & rc.Xmax & vbCrLf & _ "Y от " & rc.Ymin & " до " & rc.Ymax End SubPython:
import zulu def Macro_ITileLayer_GetLevelBoundsRectangle(): # Создаем тайловый слой 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 rc = T.GetLevelBoundsRectangle(1) print("Габариты уровня 1:") print(" X от", rc.Xmin, "до", rc.Xmax) print(" Y от", rc.Ymin, "до", rc.Ymax)