LineStyleDef object

Объект, содержащий описание и методы работы со стилем линии. В частности, является элементом коллекции LineStyles стилей линий слоя.

Входит в состав ZuluGIS 2021 Library.

Регистрационная информация:

PROGID:

ZuluLib.LineStyleDef

CLSID:

{12507450-11DD-4DDC-AFDA-3007DB025F4D}

Свойства и методы:

Описание:

Стиль линии собирается из элементов: линии добавляются методом AddLineElement, символы вдоль линии - методом AddSymbolElement, а весь набор доступен через StyleElements. Готовый стиль помещается в библиотеку стилей слоя методом AddItem коллекции LineStyles и с этого момента доступен по своему Id.

Стиль можно перенести между слоями целиком: GetBLOB отдает его двоичным блоком, SetBLOB принимает обратно.

Пример:

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

Visual Basic:

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

Python:

import zulu

def Macro_LineStyleDef_cls():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    # Описатель стиля линии и один его элемент - сплошная красная линия
    lsd = zulu.LineStyleDef()
    lse = zulu.LineStyleElement()
    lse.SetLineColor(255)
    lse.SetLineWidth(2)
    lsd.AddLineElement(lse)
    print("Элементов в стиле:", lsd.StyleElements.Count, ", Id до добавления:", lsd.Id)
    # Добавляем стиль в библиотеку стилей слоя
    ident = L.LineStyles.AddItem(lsd, -1)
    print("новый стиль получил Id", ident, ", стилей в слое стало", L.LineStyles.Count)