Создает новый слой, состоящий из площадных объектов, являющихся ячейками Вороного, построенными на основе указанных объектов исходного слоя.
Visual Basic:
Function CreateVoronoi(Elems, nFlags As Long, Path As String, UserName As String) As Boolean
Elems - список ключей объектов исходного слоя.
nFlags - зарезервирован (должен быть 0).
Path - путь или URL нового слоя.
UserName - пользовательское название слоя.
Параметр Elems это переменная типа VARIANT, которая может содержать либо коллекцию ключей слоя ElementKeys, либо массив ключей типа long VT_BYREF|VT_I4, где первый элемент массива содержит количество ключей.
Если объект из списка является символьным, то ячейка Вороного строится для точки привязки объекта. Если объект из списка является площадным или линейным, ячейки строятся для каждой точки перелома составляющих объект ломаных и полигонов.
Ячейки записываются примитивами в новый слой, который метод создаёт сам; структуры типов в нём нет. Слой с таким именем, если он уже есть, заменяется. Метод возвращает True, если слой создан, и False — если создать его не удалось, например когда папки для нового слоя не существует.
Visual Basic:
Sub Layer_CreateVoronoi 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Выделяем все типовые символы слоя L.Selection.Clear Set En = L.EnumElements En.MoveFirst n = 0 Do While Not En.IsEOF If En.GraphType = 2 Then L.Selection.AddElem En.ElemID n = n + 1 End If En.MoveNext Loop If n = 0 Then MsgBox "В слое нет типовых символов" Exit Sub End If 'Строим по ним зоны близости в новом слое If L.CreateVoronoi(L.Selection.ElementKeys, 0, "C:\Data\voronoi", "Зоны близости") Then Set V = CreateObject("ZuluLib.Layer") V.Open "C:\Data\voronoi" Set En = V.EnumElements En.MoveFirst k = 0 Do While Not En.IsEOF k = k + 1 En.MoveNext Loop MsgBox "Символов: " & n & vbCrLf & "Ячеек в слое «" & V.UserName & "»: " & k Else MsgBox "Слой с ячейками не создан" End If End Sub