Объект, предоставляющий набор дополнительных методов для работы со слоем в памяти.
Property InMemoryLayer As InMemoryLayer
Через этот объект слою в памяти задают то, чего нет у обычного слоя: собственные данные объекта (SetElemData и GetElemData), мигание (SetBlink), слежение (StartTracking, IsTracking), подпись объекта (SetLabel) и флаги слоя (SetFlags, GetFlags).
Свойство отдает объект у любого слоя, но осмысленно оно для слоя в памяти - того, который создает метод AddInMemory коллекции слоев карты и у которого свойство InMemory равно True.
Visual Basic:
Sub Layer_InMemoryLayer 'Добавляем в карту слой в памяти Set M = Zulu.ActiveMapDoc Idx = M.Layers.AddInMemory("Проба в памяти") Set L = M.Layers.Item(Idx) 'Кладем в него линию Set PL = CreateObject("ZuluLib.PolyLine") PL.AddPoint 0, 0 PL.AddPoint 1000, 1000 Key = L.AddPolyLine(PL, CreateObject("ZuluLib.ElemStyle"), -1, -1) 'Возможности слоя в памяти Set IML = L.InMemoryLayer IML.SetElemData Key, 777 IML.SetBlink Key, 300 IML.StartTracking Key S = "Линия " & Key & " в слое " & L.Name S = S & vbCrLf & "свои данные: " & IML.GetElemData(Key) S = S & vbCrLf & "мигание: " & IML.GetBlink(Key) S = S & vbCrLf & "слежение: " & IML.IsTracking(Key) IML.StopTracking Key 'Убираем слой из карты M.Layers.Remove Idx MsgBox S End SubPython:
import zulu def Macro_Layer_InMemoryLayer(): # Добавляем в карту слой в памяти M = zulu.App.ActiveMapDoc idx = M.Layers.AddInMemory("Проба в памяти") L = M.Layers.Item(idx) # Кладем в него линию pl = zulu.PolyLine() pl.AddPoint(0, 0) pl.AddPoint(1000, 1000) key = L.AddPolyLine(pl, zulu.ElemStyle(), -1, -1) # Возможности слоя в памяти iml = L.InMemoryLayer iml.SetElemData(key, 777) iml.SetBlink(key, 300) iml.StartTracking(key) print("Линия", key, "в слое", L.Name) print("свои данные:", iml.GetElemData(key)) print("мигание:", iml.GetBlink(key)) print("слежение:", iml.IsTracking(key)) iml.StopTracking(key) # Убираем слой из карты M.Layers.Remove(idx)