Добавляет в слой составной линейный элемент.
Visual Basic:
Function AddPolyPolyLine(PPLine As PolyPolyLine, Style As ElemStyle, ElemType As Long, ElemMode As Long) As Long
PPLine - объект - комбинированная ломаная
Style - объект, задающий стиль отображения объекта
ElemType - ID типа объекта, если объект является типовым. В противном случае -1
ElemMode - номер режима (нумерация с единицы), если объект является типовым. В противном случае -1
В случае успеха метод возвращает ID добавленного в слой объекта. В противном случае метод возвращает -1.
Объект собирается из ломаных заранее: каждая ломаная добавляется в PolyPolyLine методом AddPolyLine. Все они становятся одним объектом слоя с общим ID.
Объект без ломаных метод не добавляет и возвращает -1.
Visual Basic:
Sub Layer_AddPolyPolyLine 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle D = (R.Xmax - R.Xmin) / 10 X = R.Xmax + D Y = R.Ymin 'Две параллельные ломаные правее слоя Set PL1 = CreateObject("ZuluLib.PolyLine") PL1.AddPoint X, Y PL1.AddPoint X + D, Y Set PL2 = CreateObject("ZuluLib.PolyLine") PL2.AddPoint X, Y + D PL2.AddPoint X + D, Y + D 'Собираем их в один объект Set PPL = CreateObject("ZuluLib.PolyPolyLine") PPL.AddPolyLine PL1 PPL.AddPolyLine PL2 'Синяя линия толщиной 2 Set St = CreateObject("ZuluLib.ElemStyle") St.LineColor = RGB(0, 0, 255) St.LineWidth = 2 'Тип и режим -1: добавляем примитив MsgBox "Добавлен объект " & L.AddPolyPolyLine(PPL, St, -1, -1) & vbCrLf & _ "Ломаных в нем: " & PPL.Count End SubPython:
import zulu def Macro_Layer_AddPolyPolyLine(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active R = L.GetBoundsRectangle() d = (R.Xmax - R.Xmin) / 10 x = R.Xmax + d y = R.Ymin # Две параллельные ломаные правее слоя PL1 = zulu.PolyLine() PL1.AddPoint(x, y) PL1.AddPoint(x + d, y) PL2 = zulu.PolyLine() PL2.AddPoint(x, y + d) PL2.AddPoint(x + d, y + d) # Собираем их в один объект PPL = zulu.PolyPolyLine() PPL.AddPolyLine(PL1) PPL.AddPolyLine(PL2) # Синяя линия толщиной 2 St = zulu.ElemStyle() St.LineColor = 16711680 St.LineWidth = 2 # Тип и режим -1: добавляем примитив print("Добавлен объект", L.AddPolyPolyLine(PPL, St, -1, -1)) print("Ломаных в нем:", PPL.Count)