Технология создания макросов для 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.
Редактор кода Visual Basic Editor
Все программные модули макроса следует размещать в каталоге Modules. Причем, у вас есть выбор: макрос можно сохранить в самом документе (MXD), или в шаблоне (MXD). В первом случае, разработанное приложение будет доступно только в этом MXD-документе, во втором — во всех документах, созданных на основе шаблона.
Программные модули приложения
Я выделил следующий набор модулей приложения, в соответствии с их назначением (важно разделить математическую реализацию, представление-интерфейс и вспомогательные функции):
· KmeansClustering: основной модуль, выполняющий последовательность операций, приводящих к результату
· KmeansAlgorithm: математическая реализация алгоритма, не привязанная к представлению результатов
· DataDisplay: вспомогательные функции для отображения данных в ArcGIS
· Datasets: вспомогательные функции для работы с наборами данных
· Features: вспомогательные функции для работы с объектами наборов данных
· Layers: вспомогательные функции для работы со слоями
· KmeansTest: вспомогательный модуль для отладки приложения
Для того чтобы сделать резервную копию программного кода, нужно сделать копию документа ArcGIS Desktop, или экспортировать нужные модули в файлы (команда меню Export File…).
Пользовательский интерфейс для ввода параметров Алгоритма я представил в виде формы frmKmeanParams.
Конструктор формы для ввода параметров Алгоритма
Следующий этап — написание программного кода. Программный код примера можно скачать по ссылке: [в виде экспортированных файлов макроса], [в составе MXT-шаблона].
Один из программных модулей является основным (KmeansClustering), другие же являются вспомогательными и вызываются основным модулем. В принципе, весь код можно разместить в одном модуле, но это неудобно. Команду вызова основного программного модуля удобно вынести на панель инструментов ArcGIS Desktop (используйте меню Tools—Customize…—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.
Комментариев нет:
Отправить комментарий