Возвращает суммарную площадь объектов группы в квадратных метрах, вычисленную в указанной системе координат указанным способом.
Visual Basic:
Function CalcArea(inCRS As CRS, eMeasure As eMeasureType) As Double
inCRS - система координат, в которой вычисляется площадь.
eMeasure - способ вычисления: eMeasureTypeCartesian (0) - на плоскости, eMeasureTypeSpherical (1) - на сфероиде, eMeasureTypeRaw (2) - по координатам слоя без пересчета.
Складываются площади площадных объектов группы, вычисленные так же, как методом Element.CalcArea (там описано, как действует каждый способ), но результат - в квадратных метрах, а не в гектарах. Линейные, символьные и текстовые объекты в сумму не входят; у пустой группы метод возвращает 0.
Пример сообщает площадь всех объектов активного слоя на плоскости и на сфероиде в системе координат слоя.
Visual Basic:
Sub Selection_CalcArea Const eMeasureTypeCartesian = 0 Const eMeasureTypeSpherical = 1 'Берем активный слой карты и его группу Set L = Zulu.ActiveMapDoc.Layers.Active Set S = L.Selection S.SelectAll Set C = L.GetCRS MsgBox "На плоскости: " & S.CalcArea(C, eMeasureTypeCartesian) & " кв. м" & vbCrLf & _ "На сфероиде: " & S.CalcArea(C, eMeasureTypeSpherical) & " кв. м" S.Clear End SubPython:
import zulu eMeasureTypeCartesian = 0 eMeasureTypeSpherical = 1 def Macro_Selection_CalcArea(): # Берем активный слой карты и его группу L = zulu.App.ActiveMapDoc.Layers.Active S = L.Selection S.SelectAll() C = L.GetCRS() print("На плоскости:", S.CalcArea(C, eMeasureTypeCartesian), "кв. м, на сфероиде:", S.CalcArea(C, eMeasureTypeSpherical), "кв. м") S.Clear()