AddPolyLine method (Layer)

Добавляет в слой линейный объект.

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

Layer

Синтаксис:

Visual Basic:

Function AddPolyLine(Pline As PolyLine, Style As ElemStyle, ElemType As Long,ElemMode As Long) As Long

Pline - линейный объект

Style - объект, задающий стиль отображения ломаной

ElemType - ID типа

ElemMode - номер режима (нумерация с единицы)

Описание:

В случае успеха метод возвращает ID добавленного в слой объекта. В противном случае метод возвращает -1.

Чтобы добавить непривязанный к структуре слоя объект (примитив), ElemType и ElemMode задают равными -1.

Ломаную меньше чем из двух точек метод не добавляет: он возвращает -1, а метод GetLastErrorCode — код -5.

Пример:

Visual Basic:

Sub Layer_AddPolyLine
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set R = L.GetBoundsRectangle
'Готовим ломаную правее слоя
D = (R.Xmax - R.Xmin) / 10
X = R.Xmax + D
Y = R.Ymin
Set PL = CreateObject("ZuluLib.PolyLine")
PL.AddPoint X, Y
PL.AddPoint X + D, Y
PL.AddPoint X + D, Y + D
'Синяя линия толщиной 2
Set St = CreateObject("ZuluLib.ElemStyle")
St.LineColor = RGB(0, 0, 255)
St.LineWidth = 2
'Тип и режим -1: добавляем примитив
MsgBox "Добавлена ломаная " & L.AddPolyLine(PL, St, -1, -1) & vbCrLf & _
       "Длина: " & Round(PL.Length, 1)
End Sub

Python:

import zulu

def Macro_Layer_AddPolyLine():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    R = L.GetBoundsRectangle()
    # Готовим ломаную правее слоя
    d = (R.Xmax - R.Xmin) / 10
    x = R.Xmax + d
    y = R.Ymin
    PL = zulu.PolyLine()
    for px, py in ((x, y), (x + d, y), (x + d, y + d)):
        PL.AddPoint(px, py)
    # Синяя линия толщиной 2
    St = zulu.ElemStyle()
    St.LineColor = 16711680
    St.LineWidth = 2
    # Тип и режим -1: добавляем примитив
    print("Добавлена ломаная", L.AddPolyLine(PL, St, -1, -1))
    print("Длина:", round(PL.Length, 1))