Добавляет в слой элемент, геометрия которого описана в объекте ZGeoObject.
Visual Basic:
Function AddGeoObject(GeoObject As ZGeoObject, Style As ElemStyle, ElemType As Long, ElemMode As Long) As Long
GeoObject - объект с геометрией элемента.
Style - объект, задающий стиль отображения элемента.
ElemType - ID типа.
ElemMode - номер режима (нумерация с единицы).
Если добавление элемента выполнено успешно, метод возвращает ID добавленного элемента. В противном случае метод возвращает -1.
Геометрия готовится заранее: объект ZGeoObject заполняется методом Init, который принимает строку в формате WKT или готовый объект геометрии — PolyLine или Contour. Координаты строки WKT пересчитываются из системы координат, заданной вторым параметром Init; координаты объекта геометрии берутся как есть.
Чтобы добавить непривязанный к структуре слоя объект (примитив), ElemType и ElemMode задают равными -1. Точка примитивом не добавляется: ей нужно задать тип узла.
Объект, в котором геометрии нет, метод не добавляет и возвращает -1.
Visual Basic:
Sub Layer_AddGeoObject 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set R = L.GetBoundsRectangle D = (R.Xmax - R.Xmin) / 10 'Готовим геометрию - ломаную правее слоя Set PL = CreateObject("ZuluLib.PolyLine") PL.AddPoint R.Xmax + D, R.Ymin PL.AddPoint R.Xmax + 2 * D, R.Ymin + D 'Переносим ее в объект ZGeoObject Set Geo = CreateObject("ZuluLib.ZGeoObject") Geo.Init PL, Nothing 'Зеленая линия толщиной 2 Set St = CreateObject("ZuluLib.ElemStyle") St.LineColor = RGB(0, 128, 0) St.LineWidth = 2 'Тип и режим -1: добавляем примитив MsgBox "Добавлен объект " & L.AddGeoObject(Geo, St, -1, -1) End Sub