SetLineShiftHor method (LineStyleElement)

Метод присваивает сдвиг штриха вдоль направления линии. (только для прерывистых линий)

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

LineStyleElement

Синтаксис:

Visual Basic:

Sub SetLineShiftHor(dShift As Double)

dShift - величина сдвига вдоль направления линии.

Описание:

Сдвиг задается в миллиметрах и двигает весь рисунок штрихов вдоль линии. Сдвиг, равный шагу, переносит рисунок на целый период, и линия выглядит так же, как без сдвига.

На сплошной линии сдвиг ничего не меняет.

Сдвигом разводят штрихи нескольких элементов одного стиля, чтобы они попадали в пропуски друг друга. Так собирается штрих-пунктир: у всех элементов один шаг, первый рисуется без сдвига, остальные сдвинуты так, чтобы встать в его пропуск.

Отрицательное значение метод принимает и возвращает как есть; у только что созданного элемента сдвиг нулевой.

Пример:

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

Visual Basic:

Sub LineStyleElement_SetLineShiftHor
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set lsd = CreateObject("ZuluLib.LineStyleDef")
'Первая штриховая линия: штрих 8 через каждые 20
Set lse = CreateObject("ZuluLib.LineStyleElement")
lse.SetLineColor RGB(255, 0, 0)
lse.SetLineType 1
lse.SetLineStep 20
lse.SetLineDash 8
lsd.AddLineElement lse
'Вторая такая же, но ее штрихи начинаются на полшага позже
Set lse2 = CreateObject("ZuluLib.LineStyleElement")
lse2.SetLineColor RGB(0, 0, 255)
lse2.SetLineType 1
lse2.SetLineStep 20
lse2.SetLineDash 8
lse2.SetLineShiftHor 10
lsd.AddLineElement lse2
S = "Сдвиги элементов: " & lsd.StyleElements.Item(0).GetLineShiftHor & " и " & lsd.StyleElements.Item(1).GetLineShiftHor
S = S & vbCrLf & "новый стиль получил Id " & L.LineStyles.AddItem(lsd, -1)
MsgBox S
End Sub

Python:

import zulu

def Macro_LineStyleElement_SetLineShiftHor():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    lsd = zulu.LineStyleDef()
    # Первая штриховая линия: штрих 8 через каждые 20
    lse = zulu.LineStyleElement()
    lse.SetLineColor(255)
    lse.SetLineType(1)
    lse.SetLineStep(20)
    lse.SetLineDash(8)
    lsd.AddLineElement(lse)
    # Вторая такая же, но ее штрихи начинаются на полшага позже
    lse2 = zulu.LineStyleElement()
    lse2.SetLineColor(16711680)
    lse2.SetLineType(1)
    lse2.SetLineStep(20)
    lse2.SetLineDash(8)
    lse2.SetLineShiftHor(10)
    lsd.AddLineElement(lse2)
    print("Сдвиги элементов:", lsd.StyleElements.Item(0).GetLineShiftHor(),
          "и", lsd.StyleElements.Item(1).GetLineShiftHor())
    print("новый стиль получил Id", L.LineStyles.AddItem(lsd, -1))