EditorAdd method (MapDoc)

Добавляет в редактируемый слой объект, введенный в редакторе карты (дублирует команду Добавить элемента управления MapCtrl).

Применяется к:

MapDoc

Синтаксис:

Visual Basic:

Sub EditorAdd()

Описание:

Метод завершает ввод объекта в окне карты: линия, которую пользователь начал рисовать щелчками мыши (например, в режиме eEditModePolyline, EditMode = 3), становится объектом редактируемого слоя (EditLayer), и объектов в нем становится на один больше. Редактор после этого остается в том же режиме ввода, и можно рисовать следующий объект.

Введенные точки читаются из свойства InputPolyline. Если точек нет, метод ничего не добавляет.

Методу нужно окно карты с редактируемым слоем: у карты, созданной отдельно от окон ZuluGIS как объект ZuluLib.MapDoc, он ничего не делает.

Пример:

Пример добавляет в редактируемый слой линию, которую пользователь уже начал рисовать на карте, и сообщает, сколько объектов стало в слое. Перед запуском включите редактирование слоя, режим ввода ломаной и отметьте на карте несколько точек.

Visual Basic:

Sub MapDoc_EditorAdd
'Берем рабочую карту и редактируемый слой
Set Doc = Zulu.ActiveMapDoc
Set L = Doc.Layers.EditLayer
If L Is Nothing Then
  MsgBox "Редактирование слоя не включено"
Else
  n = L.ElementKeys.Count
  S = "Точек во вводимой линии: " & Doc.InputPolyline.NumTops
  'Добавляем введенную линию в слой
  Doc.EditorAdd
  MsgBox S & vbCrLf & "объектов в слое было " & n & ", стало " & L.ElementKeys.Count
End If
End Sub

Python:

import zulu

def Macro_MapDoc_EditorAdd():
    # Берем рабочую карту и редактируемый слой
    doc = zulu.App.ActiveMapDoc
    L = doc.Layers.EditLayer
    if L is None:
        print("Редактирование слоя не включено")
    else:
        n = L.ElementKeys.Count
        print("Точек во вводимой линии:", doc.InputPolyline.NumTops)
        # Добавляем введенную линию в слой
        doc.EditorAdd()
        print("объектов в слое было", n, ", стало", L.ElementKeys.Count)