Добавляет в слой элемент, заданный переменной, в которой содержится объект во внутреннем формате системы.
Visual Basic:
Function AddElementFromRaw(Elem, ElemID As Long ) As Long
Elem - добавляемый элемент
ElemID - ID добавляемого элемента
Добавляемый объект содержится в переменной типа VARIANT, которая может быть получена, например, как результат пространственного SQL запроса к слою. Если добавление элемента выполнено успешно, метод возвращает ID добавленного элемента. В противном случае метод возвращает -1.
Пример демонстрирует получение графических данных во внутреннем формате Zulu через SQL запрос и запись полученных данных в новый слой.
Dim Src As Layer 'Слой источник Set Src = MapCtrl1.Map.Layers.Active 'Aктивный слой карты Dim Dest As Layer 'Слой для записи Dim Res As IZSqlResult 'Запрос на выборку геометрии во внутреннем формате Zulu 'для выделенных объектов активного слоя карты Set Res = Src.ExecSQL("SELECT Sys, Geometry.AsRaw() WHERE Geometry.Selected() = 1") Dim ds As IZbDataset If TypeName(Res.DataSet) = "IZbDataset" Then 'Если ответ получен Set ds = Res.DataSet Dim Tools As ZuluTools Set Tools = New ZuluTools 'Создаем новый пустой слой с копированием графической структуры слоя источника Tools.LayerCopyEx MapCtrl1.Map.Layers.Active.Name, "d:\a\test.b00", "Test Layer", 4 Set Dest = New Layer Dest.Open "d:\a\test.b00" 'Идем по ответу ds.MoveFirst Do If ds.EOF Then Exit Do Dim Sys As Long 'Получаем ID объекта Sys = ds.GetFieldValueVar(0) Dim val As Variant 'Получаем геометрию объекта во внутреннем формате Zulu val = ds.GetFieldValueVar(1) 'Добавляем объект в новый слой с тем же ID Dest.AddElementFromRaw val, Sys ds.MoveNext Loop Else MsgBox Res.ErrorString End If