2009-01-28

Разработка расширений для ArcGIS Desktop [4 Создание макросов для ArcGIS Desktop в среде VBA]

Технология создания макросов для ArcGIS Desktop в среде VBA ничем не отличается от, например, технологии создания макросов для Microsoft Excel. Отличия есть только в предметной области и используемых классах.

Результат разработки — это программный код на языке Visual Basic, хранящийся непосредственно в MXD-документе, или MXT-шаблоне документа ArcGIS Desktop. Пользователю нужно вынести кнопку на панель инструментов, запускающую выполнение этого программного кода. Подробнее о технологии создания макросов для ArcGIS Desktop с среде VBA можно прочитать по ссылке: http://webhelp.esri.com/arcgisdesktop/9.3/index.cfm?TopicName=Getting_started_with_VBA.

По умолчанию, программный код макроса открыт и виден всем пользователям документа ArcGIS Desktop, в составе которого он находится. Однако его можно скрыть от посторонних глаз или защитить от редактирования.

Итак, открываем MXD-проект с тестовыми данными запускаем Visual Basic Editor.

clip_image002

clip_image004

Редактор кода Visual Basic Editor

Все программные модули макроса следует размещать в каталоге Modules. Причем, у вас есть выбор: макрос можно сохранить в самом документе (MXD), или в шаблоне (MXD). В первом случае, разработанное приложение будет доступно только в этом MXD-документе, во втором — во всех документах, созданных на основе шаблона.

clip_image002

Программные модули приложения

Я выделил следующий набор модулей приложения, в соответствии с их назначением (важно разделить математическую реализацию, представление-интерфейс и вспомогательные функции):

·         KmeansClustering: основной модуль, выполняющий последовательность операций, приводящих к результату

·         KmeansAlgorithm: математическая реализация алгоритма, не привязанная к представлению результатов

·         DataDisplay: вспомогательные функции для отображения данных в ArcGIS

·         Datasets: вспомогательные функции для работы с наборами данных

·         Features: вспомогательные функции для работы с объектами наборов данных

·         Layers: вспомогательные функции для работы со слоями

·         KmeansTest: вспомогательный модуль для отладки приложения

Для того чтобы сделать резервную копию программного кода, нужно сделать копию документа ArcGIS Desktop, или экспортировать нужные модули в файлы (команда меню Export File…).

Пользовательский интерфейс для ввода параметров Алгоритма я представил в виде формы frmKmeanParams.

clip_image004

Конструктор формы для ввода параметров Алгоритма

Следующий этап — написание программного кода. Программный код примера можно скачать по ссылке: [в виде экспортированных файлов макроса], [в составе MXT-шаблона].

Один из программных модулей является основным (KmeansClustering), другие же являются вспомогательными и вызываются основным модулем. В принципе, весь код можно разместить в одном модуле, но это неудобно. Команду вызова основного программного модуля удобно вынести на панель инструментов ArcGIS Desktop (используйте меню ToolsCustomize…—Commands—[ Macros ]—МакросОсновногоПрограммногоМодуля).

В основной программный модуль включены функции, реализующие подзадачи приложения, выделенные в разделе Общие рекомендации по разработке приложений для ArcGIS Desktop:

'Main clustering procedure. Executes clustering. Calls all defined steps for clustering

Public Sub DoClustering()

    If Not InitializeVariables Then End

    If Not TakeClusteringParams Then End

    If Not GetInitialData Then End

    If Not ExectuteClustering Then End

    If Not CreateClusteredDataset Then End

    If Not FillClusterIdValues Then End

    If Not AddClusteredLeyer Then End

End Sub

Когда макрос создан и отлажен, его можно установить другим пользователям. Первый и предпочтительный способ — передать им MXT-шаблон, в составе которого есть разработанная функциональность с вынесенной на панель инструментов кнопкой запуска. Тогда пользователю достаточно создать документ на основе этого шаблона и добавить свои данные. Второй способ — экспорт и импорт файлов макроса (не оправдывает себя из-за излишних сложностей).

 


Скачать PDF-версию с оригинальным оформлением. © Для использования опубликованных на ресурсе материалов достаточно упоминания имени автора и адреса первоисточника. Дата обновления: 2009-01-28.

Комментариев нет: