GetLineCrossingStatus method (Element)

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

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

Element

Синтаксис:

Visual Basic:

Function GetLineCrossingStatus(SegNum As Long, NodeNum As Long) As Long

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

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

Описание:

Метод парный к SetLineCrossingStatus и читает отметку, поставленную этим методом.

Возвращаемые значения:

0 - отметки нет;

1 - отметка есть;

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

Отметить и, соответственно, прочитать можно только внутренние точки перелома - концы линии отметить нельзя. Поэтому у линии из N вершин допустимы значения NodeNum от 1 до N - 2, а у линии из двух вершин отмечать нечего.

Пример:

Visual Basic:

Sub Element_GetLineCrossingStatus
Set L = Zulu.ActiveMapDoc.Layers.Active
'в ID записываем ключ текущего объекта
ID = L.CurrentID
'получаем элемент по ключу
Set obj = L.Elements.GetElement(ID)
'перебираем внутренние точки перелома: нумерация с нуля,
'концы линии отметить нельзя
s = ""
For n = 1 To obj.PolyLine.NumTops - 2
  s = s & "точка " & n & ": " & obj.GetLineCrossingStatus(0, n) & vbCrLf
Next
MsgBox s

Python:

import zulu

def Macro_Element_GetLineCrossingStatus():
    L = zulu.App.ActiveMapDoc.Layers.Active
    # в ID записываем ключ текущего объекта
    ID = L.CurrentID
    # получаем элемент по ключу
    obj = L.Elements.GetElement(ID)
    # перебираем внутренние точки перелома: нумерация с нуля,
    # концы линии отметить нельзя
    for n in range(1, obj.PolyLine.NumTops - 1):
        print("точка %s: %s" % (n, obj.GetLineCrossingStatus(0, n)))