Perimeter property (IZEnumElements)

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

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

IZEnumElements

Синтаксис:

Visual Basic:

Property Perimeter As Double

read-only

Описание:

Свойство относится к площадным объектам. Длину линейного объекта им получить нельзя: у линии оно возвращает 0, как и Area.

Единицы не зависят от системы координат слоя: периметр считается в метрах и тогда, когда координаты объектов заданы в градусах.

Пример:

Visual Basic:

Sub IZEnumElements_Perimeter
'Итератор по объектам активного слоя карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set En = L.EnumElements
En.MoveFirst
'Периметр считается только у площадных объектов
Do While Not En.IsEOF
  If En.Area > 0 Then
    MsgBox "Объект " & En.ElemID & ": площадь " & En.Area & ", периметр " & En.Perimeter
    Exit Sub
  End If
  En.MoveNext
Loop
MsgBox "В слое нет площадных объектов"
End Sub

Python:

import zulu

def Macro_IZEnumElements_Perimeter():
    # Итератор по объектам активного слоя карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    En = L.EnumElements()
    En.MoveFirst()
    # Периметр считается только у площадных объектов
    while not En.IsEOF():
        if En.Area > 0:
            print("Объект %d: площадь %s, периметр %s" % (En.ElemID, En.Area, En.Perimeter))
            return
        En.MoveNext()
    print("В слое нет площадных объектов")