В слой добавляется контурный элемент.
Visual Basic:
Function AddContour(Region As Contour, Style As ElemStyle, ElemType As Long,ElemMode As Long) As Long
Region - контурный объект с установленными параметрами.
Style - объект-стиль отображения контура.
ElemType - ID типа
ElemMode - номер режима (нумерация с единицы)
В случае успеха метод возвращает ID добавленного в слой объекта.
В противном случае метод вернет -1.
Чтобы добавить непривязанный к структуре слоя объект (примитив), ElemType и ElemMode задают равными -1.
Контур замыкается автоматически: у объекта, созданного из четырёх вершин, их пять. Контур меньше чем из трёх вершин метод не добавляет: он возвращает -1, а метод GetLastErrorCode — код -5.
Visual Basic:
Sub Layer_AddContour 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle 'Готовим квадратный контур правее слоя Set C = CreateObject("ZuluLib.Contour") D = (R.Xmax - R.Xmin) / 10 X = R.Xmax + D Y = R.Ymin C.AddPoint X, Y C.AddPoint X + D, Y C.AddPoint X + D, Y + D C.AddPoint X, Y + D 'Красная заливка стилем 2 из библиотеки слоя, тонкая граница Set St = CreateObject("ZuluLib.ElemStyle") St.FillStyle = 2 St.PatColor = RGB(255, 0, 0) St.BorderWidth = 1 'Тип и режим -1: добавляем примитив MsgBox "Добавлен контур " & L.AddContour(C, St, -1, -1) End SubPython:
import zulu def Macro_Layer_AddContour(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active R = L.GetBoundsRectangle() # Готовим квадратный контур правее слоя C = zulu.Contour() d = (R.Xmax - R.Xmin) / 10 x = R.Xmax + d y = R.Ymin for px, py in ((x, y), (x + d, y), (x + d, y + d), (x, y + d)): C.AddPoint(px, py) # Красная заливка стилем 2 из библиотеки слоя, тонкая граница St = zulu.ElemStyle() St.FillStyle = 2 St.PatColor = 255 St.BorderWidth = 1 # Тип и режим -1: добавляем примитив print("Добавлен контур", L.AddContour(C, St, -1, -1))