Объект, представляющий документ-карту системы Zulu. В макросах ZuluGIS рабочую карту дает свойство Zulu.ActiveMapDoc; карта, которую показывает вид, - свойство MapView.Map. Кроме того, объект возвращается как свойство компонента MapCtrl.Map, а также как свойство Zulu.Documents.Document.NativeDoc.
Входит в состав ZuluGIS 2021 Library.
PROGID:
ZuluLib.MapDoc
CLSID:
{12507022-0B01-11D2-B55D-444553540000}
Свойства
Методы
Карту можно создать и отдельно от окон ZuluGIS - как объект ZuluLib.MapDoc, в python - zulu.MapDoc(). У только что созданной карты нет ни слоев, ни видов: Layers.Count и Views.Count равны 0, название и путь к файлу пустые. Слои добавляются методом AddLayer, и первый добавленный становится активным. Видов у такой карты так и не появляется, поэтому то, что рисует в окне карты, для нее недоступно.
Слои карты нумеруются с единицы: первый слой - Layers.Item(1), а обращение к номеру 0 вызывает исключение.
Карта сохраняется в файл методами Save и SaveAs и загружается методом Open.
Пример создает отдельную карту, добавляет в нее файлы активного слоя и сохраняет ее.
Visual Basic:
Sub MapDoc_cls 'Берем активный слой рабочей карты Set L = Zulu.ActiveMapDoc.Layers.Active 'Создаем отдельную карту - без окон Set M = CreateObject("ZuluLib.MapDoc") S = "Новая карта: слоев " & M.Layers.Count & ", видов " & M.Views.Count 'Добавляем в нее тот же слой по пути к его файлам M.AddLayer L.Name S = S & vbCrLf & "после AddLayer: слоев " & M.Layers.Count & ", первый - " & M.Layers.Item(1).UserName 'Сохраняем карту в файл If M.SaveAs("C:\Data\copy.zmp") Then S = S & vbCrLf & "сохранена: " & M.PathName End If MsgBox S End SubPython:
import zulu def Macro_MapDoc_cls(): # Берем активный слой рабочей карты L = zulu.App.ActiveMapDoc.Layers.Active # Создаем отдельную карту - без окон M = zulu.MapDoc() print("Новая карта: слоев", M.Layers.Count, ", видов", M.Views.Count) # Добавляем в нее тот же слой по пути к его файлам M.AddLayer(L.Name) print("после AddLayer: слоев", M.Layers.Count, ", первый -", M.Layers.Item(1).UserName) # Сохраняем карту в файл if M.SaveAs(r"C:\Data\copy.zmp"): print("сохранена:", M.PathName)