Инициализирует модель сети слоя для многократных вызовов функций поиска пути (GetShortWay, ShortWay).
Visual Basic:
Function ShortWayStart() As Long
Вызов данного метода для буферизации модели сети, требует последующего завершения вызовом метода ShortWayFinish
Метод возвращает 1, парный ShortWayFinish - 0. Поиск путей работает и без буферизации, на ответы она не влияет: между теми же узлами получаются те же цепочки ключей.
Выигрыш по времени зависит от размера сети: на небольшой сети его может не быть.
Visual Basic:
Sub Layer_ShortWayStart 'Берем активный слой тепловой сети Set L = Zulu.ActiveMapDoc.Layers.Active Set Nodes = L.NetworkObjects(1) 'Готовим модель сети к череде поисков S = "ShortWayStart: " & L.ShortWayStart 'Считаем, до скольких узлов есть путь от первого n = 0 For i = 2 To Nodes.Count If L.ShortWay(Nodes.Key(1), Nodes.Key(i)).Count > 0 Then n = n + 1 Next S = S & vbCrLf & "узлов, связанных с первым: " & n & " из " & (Nodes.Count - 1) 'Обязательно закрываем буферизацию S = S & vbCrLf & "ShortWayFinish: " & L.ShortWayFinish MsgBox S End SubPython:
import zulu def Macro_Layer_ShortWayStart(): # Берем активный слой тепловой сети L = zulu.App.ActiveMapDoc.Layers.Active nodes = L.NetworkObjects(1) # Готовим модель сети к череде поисков print("ShortWayStart:", L.ShortWayStart()) # Считаем, до скольких узлов есть путь от первого n = 0 for i in range(2, nodes.Count + 1): if L.ShortWay(nodes.Key(1), nodes.Key(i)).Count > 0: n += 1 print("узлов, связанных с первым:", n, "из", nodes.Count - 1) # Обязательно закрываем буферизацию print("ShortWayFinish:", L.ShortWayFinish())