Добавляет в слой линейный объект.
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 SubPython:
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))