CalcArea method (Selection)

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

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

Selection

Синтаксис:

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 Sub

Python:

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()