Возвращает габариты карты в системе координат, заданной строковым кодом.
Visual Basic:
Function GetBoundsCRS(sCRS As String, X1 As Double, Y1 As Double, X2 As Double, Y2 As Double) As Long
sCRS - код системы координат, в которой определяются габариты карты, например EPSG:4326.
X1, Y1 - наименьшие значения координат объектов карты.
X2, Y2 - наибольшие значения координат объектов карты.
Если метод выполнен успешно, он вернет 0, а в переменные X1, Y1, X2, Y2 будут записаны габариты карты (те же, что дает GetBoundsRectangle), пересчитанные в заданную систему координат. Для пустой строки и неизвестного кода метод вернет -1.
Ось X направлена на север, Y - на восток, поэтому в географической системе координат (EPSG:4326) X - это широта, а Y - долгота. Пересчет имеет смысл, если у карты есть своя система координат (GetCRS). У карты без системы координат (план-схемы) координаты лишь переводятся в единицы заданной системы, без географической привязки.
Метод записывает результат по ссылке в переменные типа Double, поэтому в VBScript, в том числе в макросах ZuluGIS на Visual Basic, его применить нельзя: вызов завершается ошибкой «Type mismatch». Там габариты в другой системе координат можно получить по слоям карты - методом Layer.GetBoundsCRSRectangle. В python метод возвращает кортеж: код результата и четыре координаты.
Python:
import zulu def Macro_MapDoc_GetBoundsCRS(): # Берем рабочую карту doc = zulu.App.ActiveMapDoc # Габариты карты в географических координатах WGS 84 res, x1, y1, x2, y2 = doc.GetBoundsCRS("EPSG:4326") if res == 0: print("широта:", x1, "-", x2) print("долгота:", y1, "-", y2) else: print("Габариты в EPSG:4326 не получены")