GetLevelBoundsRectangle method (ITileLayer)

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

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

ITileLayer

Синтаксис:

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 Sub

Python:

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)