Возвращает габариты слоя в заданной системе координат.
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 SubPython:
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)