SetLineCrossingStatus method (Element)

Отмечает пересечение линий в заданной точке перелома линейного объекта.

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

Element

Синтаксис:

Visual Basic:

Function SetLineCrossingStatus(SegNum As Long, NodeNum As Long, bStatus As Boolean) As Long

SegNum - номер сегмента (нумерация с нуля).

NodeNum - номер точки перелома в сегменте (нумерация с нуля).

bStatus - признак отметки.

Описание:

Метод отмечает место пересечения типовых линейных объектов, обозначаемое дугой. Центром обозначения служит точка перелома, поэтому отметить можно только внутренние точки перелома сегмента - концы линии отметить нельзя. Радиус и масштаб обозначения задаются методом SetLineCrossingStyle объекта ObjectMode.

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

Отметка задается параметром bStatus: значение True ставит ее, False - снимает. Прочитать текущее состояние отметки можно методом GetLineCrossingStatus.

Метод возвращает 0, если отметка установлена или снята, и -1, если элемент не является типовым линейным объектом либо значения SegNum или NodeNum недопустимы.

Обратите внимание, что нумерация точек перелома в этом методе начинается с нуля, тогда как в методах GetX и GetY объекта PolyLine вершины нумеруются с единицы.

Пример:

Visual Basic:

Sub Element_SetLineCrossingStatus
Set L = Zulu.ActiveMapDoc.Layers.Active
'в ID записываем ключ текущего объекта
ID = L.CurrentID
'получаем элемент по ключу
Set obj = L.Elements.GetElement(ID)
'отмечаем пересечение во второй точке перелома сегмента 0
'False на том же месте снимет отметку
MsgBox "Код возврата: " & obj.SetLineCrossingStatus(0, 1, True) & vbCrLf & _
       "Состояние отметки: " & obj.GetLineCrossingStatus(0, 1)
End Sub

Python:

import zulu

def Macro_Element_SetLineCrossingStatus():
    L = zulu.App.ActiveMapDoc.Layers.Active
    # в ID записываем ключ текущего объекта
    ID = L.CurrentID
    # получаем элемент по ключу
    obj = L.Elements.GetElement(ID)
    # отмечаем пересечение во второй точке перелома сегмента 0
    # False на том же месте снимет отметку
    print("Код возврата:", obj.SetLineCrossingStatus(0, 1, True))
    print("Состояние отметки:", obj.GetLineCrossingStatus(0, 1))