SetSymbolWidthType method (LineStyleElement)

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

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

LineStyleElement

Синтаксис:

Visual Basic:

Sub SetSymbolWidthType(eType As eLinearSizeType)

eType - тип толщины:

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

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

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

Описание:

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

При типе 0 штрихи символа не толстеют вместе с линией, при типе 1 толстеют пропорционально ее толщине, при типе 2 - понемногу, заметно медленнее.

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

Пример:

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

Visual Basic:

Sub LineStyleElement_SetSymbolWidthType
'Берем активный слой карты
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.SetSymbolWidthType 0
lsd.AddSymbolElement lse
S = "Тип толщины символа: " & lsd.StyleElements.Item(0).GetSymbolWidthType
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleElement_SetSymbolWidthType():
    # Берем активный слой карты
    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.SetSymbolWidthType(0)
    lsd.AddSymbolElement(lse)
    # Сам тип в python не прочитать: GetSymbolWidthType возвращает None
    print("Масштаб символа:", lsd.StyleElements.Item(0).GetSymbolScale())
    print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))