AddGeoObject method (Layer)

Добавляет в слой элемент, геометрия которого описана в объекте ZGeoObject.

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

Layer

Синтаксис:

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