Трансформирование слоя однигм из методов из набора eMethod As eLayerTransformMethod.
Visual Basic:
Function LayerTransformByPoints(Path As String, Points, inCRS As CRS, eMethod As eLayerTransformMethod) As Boolean
Path - полный путь к слою.
Points - переменная типа VARIANT, содержащая точки трансформации.
Points - переменная типа VARIANT, содержащая точки трансформации.
inCRS - система координат точек трансформации.
eMethod - метод трансформации из набора eMethod As eLayerTransformMethod.
Метод аналогичен трансформациив режиме "Трансформация слоя с экрана".
Точки в последовательности идут парами по принципу "из точки" - "в точку".
На данный момент последовательность точек задается в виде полилинии в объекте PolyLine.
Метод возвращает True, если операция прошла успешно, в противном случае метод возвращает False.
'VBScript ' ActiveX enumeration values definitions start (do not change!) Const eLayerTransformMethodShift = 6 ' ActiveX enumeration values definitions end Sub ShiftLayer 'Получаем активный слой текущей карты Set Map = Zulu.ActiveMapDoc Set L = Map.Layers.Active 'создаем объект ZuluTools Set tools = CreateObject("ZuluLib.ZuluTools") 'Получаем центр объекта слоя с ID = 16 Set Pt = L.Elements.Item(16).GetCenter 'создаем объект PolyLine Set pline = CreateObject("ZuluLib.PolyLine") 'Заполняем объект парой точек pline.AddPoint Pt.X, Pt.Y pline.AddPoint Pt.X + 100, Pt.Y + 100 'Сдвигаем слой на 100 метров по X и Y от центра выбранного объект result = tools.LayerTransformByPoints (L.name, pline, zulu.ActiveMapDoc.GetCRS, eLayerTransformMethodShift) MsgBox result End Sub