GetBoundsCRSRectangle method (Layer)

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

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

Layer

Синтаксис:

Visual Basic:

Function GetBoundsCRSRectangle(inCRS As CRS) As ZRectangle

inCRS - система координат, в которой возвращаются габариты слоя

Описание:

Метод пересчитывает габариты слоя в систему координат inCRS. Для системы координат самого слоя (GetCRS) результат совпадает с тем, что даёт GetBoundsRectangle.

X в результате — северная координата, Y — восточная: например, в EPSG:4326 X — широта, а Y — долгота.

Для слоя без объектов метод возвращает Nothing.

Пример:

Visual Basic:

Sub Layer_GetBoundsCRSRectangle
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Габариты слоя в его собственной системе координат
Set R = L.GetBoundsCRSRectangle(L.GetCRS)
If R Is Nothing Then
  MsgBox "В слое нет объектов"
  Exit Sub
End If
S = "В системе координат слоя:" & vbCrLf & _
    "X: " & R.Xmin & " - " & R.Xmax & vbCrLf & "Y: " & R.Ymin & " - " & R.Ymax
'Габариты слоя в сферическом Меркаторе WGS 84
Set C = CreateObject("ZuluLib.CRS")
C.InitByCode "EPSG:3857"
Set R = L.GetBoundsCRSRectangle(C)
S = S & vbCrLf & "В EPSG:3857:" & vbCrLf & _
    "X: " & R.Xmin & " - " & R.Xmax & vbCrLf & "Y: " & R.Ymin & " - " & R.Ymax
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_GetBoundsCRSRectangle():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Габариты слоя в его собственной системе координат
    R = L.GetBoundsCRSRectangle(L.GetCRS())
    if R is None:
        print("В слое нет объектов")
        return
    print("В системе координат слоя: X", R.Xmin, "-", R.Xmax, ", Y", R.Ymin, "-", R.Ymax)
    # Габариты слоя в сферическом Меркаторе WGS 84
    C = zulu.CRS()
    C.InitByCode("EPSG:3857")
    R = L.GetBoundsCRSRectangle(C)
    print("В EPSG:3857: X", R.Xmin, "-", R.Xmax, ", Y", R.Ymin, "-", R.Ymax)