AddLineElement method (LineStyleDef)

Добавляет в описатель стиля линии новый линейный элемент.

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

LineStyleDef

Синтаксис:

Visual Basic:

Sub AddLineElement(iElement As LineStyleElement)

iElement - объект, описывающий стиль одиночной линии.

Описание:

Стиль линии собирается из элементов: одиночные линии добавляются этим методом, символы вдоль линии - методом AddSymbolElement. В одном стиле их может быть сколько угодно и в любом сочетании; порядок добавления сохраняется, и весь набор виден через StyleElements.

Элемент переносится в стиль копией: после вызова тот же объект можно перенастроить и добавить снова - в стиле окажутся два разных элемента. Толщина линии, если ее не задали методом SetLineWidth, остается равной 0,0265 миллиметра - это тончайшая линия в одну точку.

Готовый стиль попадает в библиотеку стилей слоя методом AddItem. Стиль, уже лежащий в библиотеке, метод ItemById отдает копией: добавленный элемент виден только в этом объекте, а в библиотеку изменение возвращается методом ReplaceItem - после него новый состав читается и новым объектом, и после переоткрытия слоя.

Пример:

Пример собирает стиль из двух параллельных красных линий и кладет его в слой.

Visual Basic:

Sub LineStyleDef_AddLineElement
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
'Описатель стиля линии
Set lsd = CreateObject("ZuluLib.LineStyleDef")
'Первая линия - сплошная красная
Set lse = CreateObject("ZuluLib.LineStyleElement")
lse.SetLineColor RGB(255, 0, 0)
lse.SetLineType 0
lse.SetLineWidth 1
lsd.AddLineElement lse
'Вторая такая же, но сдвинута по вертикали
Set lse2 = CreateObject("ZuluLib.LineStyleElement")
lse2.SetLineColor RGB(255, 0, 0)
lse2.SetLineType 0
lse2.SetLineWidth 1
lse2.SetLineShiftVer 5
lsd.AddLineElement lse2
S = "Элементов в стиле: " & lsd.StyleElements.Count
'Кладем стиль в библиотеку стилей слоя
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleDef_AddLineElement():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Описатель стиля линии
    lsd = zulu.LineStyleDef()
    # Первая линия - сплошная красная
    lse = zulu.LineStyleElement()
    lse.SetLineColor(255)
    lse.SetLineType(0)
    lse.SetLineWidth(1)
    lsd.AddLineElement(lse)
    # Вторая такая же, но сдвинута по вертикали
    lse2 = zulu.LineStyleElement()
    lse2.SetLineColor(255)
    lse2.SetLineType(0)
    lse2.SetLineWidth(1)
    lse2.SetLineShiftVer(5)
    lsd.AddLineElement(lse2)
    print("Элементов в стиле:", lsd.StyleElements.Count)
    # Кладем стиль в библиотеку стилей слоя
    print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))