В этом документе представлены базовые концепции, необходимые для понимания процесса создания надстроек при помощи Python.
Мастер надстроек Python
Для упрощения процесса разработки надстроек рекомендуется использовать Мастер надстроек Python для объявления типа добавленной функциональности. Мастер надстроек Python уменьшает время разработки и количество возможных ошибок, создавая файлы и папки, необходимые для работы надстройки.
Загрузить Мастер надстроек Python.
Файл для загрузки представляет собой сжатый ZIP-файл (.zip), в котором содержатся все файлы, необходимые для работы мастера. Для использования мастера разархивируйте содержимое файла в папку и найдите исполняемый файл addin_assistant.exe в папке bin. Дважды нажмите на этот файл для запуска мастера. Примеры использования мастера надстроек Python доступны в разделах, посвященных созданию надстроек.
Структура файлов и папок
Надстройка представляет собой набор файлов и папок, упакованных в сжатый файл с расширением .esriaddin, которое позволяет пользователям и утилите для инсталляции надстроек ESRI ArcGIS легко его идентифицировать. Так, если вы дважды нажмете на файле надстройки в Проводнике Windows, на веб-сайте или в сообщении электронной почты, утилита для инсталляции надстроек автоматически установит надстройку на ваш компьютер, разместив ее в стандартной папке.
В состав надстройки входит файл config.xml, расположенный в корне архива надстройки. Этот файл содержит описание надстройки и объявляет добавляемую ей функциональность. Он создается при помощи мастера надстроек Python при нажатии на кнопку Сохранить (Save) и содержит всю информацию, описывающую надстройку - целевой продукт ArcGIS, заголовки, всплывающие подсказки, справочную информацию, изображения, информацию о компоновке и т.д.
Также в состав надстройки входит папка Install. Основная функция папки Install заключается в том, что она содержит скрипт надстройки на языке Python (активную часть надстройки). Например, кнопка объявляется в файле конфигурации, однако ее поведение задается в соответствующем скрипте Python.
Вы можете создавать дополнительные файлы и папки внутри папки Install. Это может быть полезно, когда вам необходимо включить в состав надстройки данные. Эти данные могут включать в себя такие элементы, как файлы слоев, наборы инструментов и файлы .xml. Для доступа к данным, находящимся в папке установки, вы можете воспользоваться встроенной функцией __file__. Следующий пример демонстрирует доступ к файлу слоя, который находится в папке данных внутри папки установки:
eq_layer = os.path.join(os.path.dirname(__file__), r'data\earth_quakes.lyr')
Значительная часть объявленных типов надстроек содержит связанную с ними графику. Все графические элементы, добавленные при помощи мастера, будут перечислены в конфигурационном файле и скопированы в папку Images в корне архива.
Следующий рисунок иллюстрирует структуру файлов и папок внутри файла надстройки (.esriaddin):
makeaddin.py
Файл Python makeaddin.py представляет собой вспомогательный скрипт, созданный мастером надстроек Python, который используется для упаковки файлов и папок, находящихся в папке проекта, в сжатый файл надстройки. Дважды нажмите на этот файл для создания файла надстройки. Вы должны запускать этот скрипт каждый раз после того, как вы модифицировали надстройку, чтобы перепаковать файл надстройки с последними изменениями.
Расположение стандартных папок
Надстройки автоматически обнаруживаются при запуске ArcGIS for Desktop в стандартной папке пользователя или компьютера. Например:
- Для Vista/7: C:\Users\<имя пользователя>\Documents\ArcGIS\AddIns\Desktop10.1
- Для XP: C:\Documents and Settings\<username>\My Documents\ArcGIS\AddIns\Desktop10.1
Надстройки автоматически добавляются и удаляются при помощи утилиты для инсталляции надстроек ESRI ArcGIS и диалогового окна менеджера надстроек. Диалоговое окно менеджера надстроек в составе ArcGIS for Desktop также позволяет вам добавлять ваши собственные стандартные папки, которые могут быть общими сетевыми ресурсами.
Кроме того, надстройки автоматически распаковывают содержимое своей папки Install во временную папку. Например:
- Для Vista/7: C:\Users\<имя пользователя>\AppData\Local\ESRI\Desktop10.1\AssemblyCache
- Для XP: C:\Documents and Settings\<имя пользователя>\Local Settings\Application Data\ESRI\Desktop10.1\AssemblyCache
Эти данные будут автоматически удалены механизмом надстроек, как только он обнаружит, что надстройка больше не установлена в системе.