SetSymbolSizeType method (LineStyleElement)

Метод задает линейные размеры символа объекту LineStyleElement.

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

LineStyleElement

Синтаксис:

Visual Basic:

Sub SetSymbolSizeType(eType As eLinearSizeType)

eType - линейные размеры:

0 - постоянные.

1 - пропорциональные.

2 - плюс постоянная.

Описание:

Тип решает, меняются ли размер символов и расстояние между ними вместе с толщиной, с которой рисуют линию (у метода Draw это его параметр LineWidth).

При постоянном типе размер символа и шаг между символами не зависят от толщины линии. При пропорциональном типе и символ, и шаг растут вместе с толщиной: при толщине 3 - примерно втрое. Тип 2 ведет себя так же, как постоянный.

У только что созданного элемента тип равен 0, а у символьных элементов готовых стилей обычно 1. Значение метод не проверяет: число вне набора констант принимается и читается обратно как есть.

Пример:

Пример собирает стиль, символы которого растут вместе с толщиной линии.

Visual Basic:

Sub LineStyleElement_SetSymbolSizeType
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set lsd = CreateObject("ZuluLib.LineStyleDef")
Set lse = CreateObject("ZuluLib.LineStyleElement")
lse.SetSymbol L.Symbols.ItemById(9)
lse.SetSymbolScale 1
lse.SetSymbolStep 40
'Размер и шаг символов растут вместе с толщиной линии
lse.SetSymbolSizeType 1
lsd.AddSymbolElement lse
S = "Тип размеров символа: " & lsd.StyleElements.Item(0).GetSymbolSizeType
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleElement_SetSymbolSizeType():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    lsd = zulu.LineStyleDef()
    lse = zulu.LineStyleElement()
    lse.SetSymbol(L.Symbols.ItemById(9))
    lse.SetSymbolScale(1)
    lse.SetSymbolStep(40)
    # Размер и шаг символов растут вместе с толщиной линии
    lse.SetSymbolSizeType(1)
    lsd.AddSymbolElement(lse)
    # Сам тип в python не прочитать: GetSymbolSizeType возвращает None
    print("Шаг символов:", lsd.StyleElements.Item(0).GetSymbolStep())
    print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))