Метод присваивает сдвиг штриха вдоль направления линии. (только для прерывистых линий)
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 SubPython:
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))