ShortWayFinish method (Layer)

Завершает буферизацию модели сети слоя вызванную методом ShortWayStart.

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

Layer

Синтаксис:

Visual Basic:

Function ShortWayFinish() As Long

Описание:

Метод возвращает 0. Вызов без открытой буферизации ошибки не вызывает и дает тот же ноль, повторный вызов - тоже. Поиск путей методом ShortWay после закрытия буферизации работает как обычно.

Для сравнения: ShortWayStart возвращает 1. Смысл пары в том, чтобы модель сети не перестраивалась на каждый поиск; выигрыш по времени зависит от размера сети, и на небольшой сети его может не быть.

Пример:

Sub Layer_ShortWayFinish
'Берем активный слой тепловой сети
Set L = Zulu.ActiveMapDoc.Layers.Active
Set Nodes = L.NetworkObjects(1)
'Открываем буферизацию модели сети
S = "ShortWayStart: " & L.ShortWayStart
'Ищем пути от первого узла ко всем остальным
n = 0
For i = 2 To Nodes.Count
  n = n + L.ShortWay(Nodes.Key(1), Nodes.Key(i)).Count
Next
S = S & vbCrLf & "путей найдено: " & (Nodes.Count - 1) & ", объектов всего: " & n
'Закрываем буферизацию
S = S & vbCrLf & "ShortWayFinish: " & L.ShortWayFinish
MsgBox S
End Sub

Python:

import zulu

def Macro_Layer_ShortWayFinish():
    # Берем активный слой тепловой сети
    L = zulu.App.ActiveMapDoc.Layers.Active
    nodes = L.NetworkObjects(1)
    # Открываем буферизацию модели сети
    print("ShortWayStart:", L.ShortWayStart())
    # Ищем пути от первого узла ко всем остальным
    n = 0
    for i in range(2, nodes.Count + 1):
        n += L.ShortWay(nodes.Key(1), nodes.Key(i)).Count
    print("путей найдено:", nodes.Count - 1, ", объектов всего:", n)
    # Закрываем буферизацию
    print("ShortWayFinish:", L.ShortWayFinish())