Глава 9. Разработка приложений с помощью ArcObjects ArcGIS.

Презентация:



Advertisements
Похожие презентации
Тема 5. Основы современной технологии программирования Программирование в средах современных информационных систем. Интегрированные системы разработки.
Advertisements

Интерфейс текстового процессора Microsoft Word. С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся.
VBA – Visual Basic for Application (офисное программирование) Назначение VBA VBA является современным языком визуального и объектно-ориентированного программирования.
Графический интерфейс WINDOWS Графический интерфейс WINDOWS.
Интерфейс языка программирования Visual Basic. Visual Basic представляет собой интегрированную среду разработки, которая содержит набор инструментов,
Вопрос 1. Для чего необходим графический интерфейс? ОПРОС ДОМАШНЕГО ЗАДАНИЯ: Ответ: Графический интерфейс необходим для реализации интерактивного диалога.
1. ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? НАБОР ПРОГРАММ В ПАМЯТИ КОМПЬЮТЕРА 2. ИЗ КАКИХ ЧАСТЕЙ СОСТОИТ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ? КРОССОВЫЕ ТЕСТОВЫЕ СИСТЕМНЫЕ.
Среда программирования Visual Basic Среда программирования Visual Basic.
Создание базы данных с помощью Конструктора Создание базы данных без помощи Мастера Теперь попробуем создать базу данных без помощи Мастера. При запуске.
Программирование на Visual Basic Автор Волков Ф.Л.
Основы объектно-ориентированного программирования (ООП)
КОНФИДЕНЦИАЛЬНО. Предназначено только для партнеров с подпиской о неразглашении. Корпорация Майкрософт не дает никаких гарантий, явных или подразумеваемых.
Выполнила работу: Студентка 2 курса 9 группа ГМУ Новикова Анастасия.
ППСОН Microsoft Office 2007 Лекция 1 Word. Интерфейс Лента 2. Элементы управления 3. Кнопка Office.
Макрорекордер (MacroRecorder) Макрорекордер – это транслятор, создающий программу (макрос – процедура без параметров) на языке VBA, как результат перевода.
Среда программирования Visual Basic. Презентацию подготовила учитель информатики МБОУ СОШ 3 г. Светлого Нетесова Наталья Александровна.
ФАКУЛЬТАТИВ №001. IDE Delphi ЭЛЕМЕНТЫ ИНТЕРФЕЙСА Delphi.
ООП Лекция 1. Основные понятия. Литература Шилдт Г. С#: полное руководтво.-М.:ООО Вильямс, с. Культин Н.Б. Microsoft Visual C# в задачах и.
Один из видов презентации на компьютере это набор слайдов, которые можно выводить последовательно друг за другом. Часто такое компьютерное произведение.
Транксрипт:

Глава 9. Разработка приложений с помощью ArcObjects ArcGIS

В этой главе: В этой главе: 1. Как читать и интерпретировать диаграммы модели объекта ArcGIS Как читать и интерпретировать диаграммы модели объекта ArcGIS Как читать и интерпретировать диаграммы модели объекта ArcGIS 2. Разработка расширений приложения: создание нового класса для расширения Разработка расширений приложения: создание нового класса для расширения Разработка расширений приложения: создание нового класса для расширения 3. Разработка компонента стыкуемого окна Разработка компонента стыкуемого окна Разработка компонента стыкуемого окна 4. Иллюстрация других примеров кода в среде VB и VBA 5. Вопросы для самопроверки Вопросы для самопроверки Вопросы для самопроверки 6. Контрольные вопросы и задачи Контрольные вопросы и задачи Контрольные вопросы и задачи

Как читать и интерпретировать диаграммы модели объекта ArcGIS Диаграммная нотация и диаграммы компонентной модели ArcObjects, основаны на нотации Unified Modeling Language (UML), стандартной индустрии построения диаграмм для объектно-ориентированного анализа и проектирования. Диаграммная нотация и диаграммы компонентной модели ArcObjects, основаны на нотации Unified Modeling Language (UML), стандартной индустрии построения диаграмм для объектно-ориентированного анализа и проектирования. Диаграммы модели объекта являются важным приложением к информации, которую Вы получаете при просмотре объекта. Среда разработки Visual Basic, или другая, перечисляет все классы и члены, но не показывает структуру или отношения этих классов. Эти диаграммы дополнят Ваше понимание компонентов ArcObjects Диаграммы модели объекта являются важным приложением к информации, которую Вы получаете при просмотре объекта. Среда разработки Visual Basic, или другая, перечисляет все классы и члены, но не показывает структуру или отношения этих классов. Эти диаграммы дополнят Ваше понимание компонентов ArcObjects

Ключ диаграммы модели объекта, показывающий типы ArcObjects и отношения между ними

Разработка расширений приложения: создание нового класса для расширения Описание проекта Описание проекта Этот раздел предназначен для разработчиков Desktop ArcGIS, кто хочет создать расширение. Этот раздел предназначен для разработчиков Desktop ArcGIS, кто хочет создать расширение. Пример, используемый в этом сценарии, является простым расширением, который дает возможность активировать некоторые инструменты на существующей инструментальной панели. Пример, используемый в этом сценарии, является простым расширением, который дает возможность активировать некоторые инструменты на существующей инструментальной панели. Центром тяжести этого сценария является создание компонентов, которые включаются в каркас (framework), но не в какое-либо конкретное решение ArcObjects. Центром тяжести этого сценария является создание компонентов, которые включаются в каркас (framework), но не в какое-либо конкретное решение ArcObjects. Концепции Концепции Расширения снабжают разработчика мощным механизмом увеличения базовой функциональности приложения ArcGIS. Расширения могут предоставлять инструментальную панель с новыми инструментами, вызов и отклик на события, выполнять проверку корректности пространственных объектов и т.п. Расширения снабжают разработчика мощным механизмом увеличения базовой функциональности приложения ArcGIS. Расширения могут предоставлять инструментальную панель с новыми инструментами, вызов и отклик на события, выполнять проверку корректности пространственных объектов и т.п.

Реализация интерфейсов расширения Реализация интерфейсов расширения Теперь Вам нужно реализовать интерфейсы IExtension и IExtensionConfig в классе Extension. Самый простой способ сделать это - использовать Интерфейс Implementer add-in ESRI. Для справки о добавлениях (add-ins) см папку Add-Ins на закладке Contents в справочной системе ArcGIS Developer Help. Теперь Вам нужно реализовать интерфейсы IExtension и IExtensionConfig в классе Extension. Самый простой способ сделать это - использовать Интерфейс Implementer add-in ESRI. Для справки о добавлениях (add-ins) см папку Add-Ins на закладке Contents в справочной системе ArcGIS Developer Help. 1. В VB6 нажмите, чтобы отобразить пустой класс Extension в окне кода. 2. Нажмите Add-Ins > ESRI Интерфейс Implementer. Отобразится диалог Интерфейс Implementer ESRI. 3. В диалоге нажмите Options и отключите Generate Обработчик ошибкиs item. 4. Нажмите IExtension в раскрывающемся меню Application. 5. Нажмите IExtensionConfig в нижнем окне и нажмите OK, чтобы закрыть диалог. 6. Интерфейс Implmenter ESRI добавляет команду Implements и stubs out все члены этих интерфейсов в окне кода. Он также добавит в проект соответствующие библиотечные ссылки, если они не существуют. 7. Если Вы не используете add-in, Вам придется вручную добавлять ссылки проекта, вводить команды Implements и вручную писать шаблон каждого члена интерфейса в окно кода.

Разработка компонента стыкуемого окна Разработка компонента стыкуемого окна VBA является идеальной средой моделирования, которая предоставляет средства для распространения настроек. В предыдущих разделах Вы могли видеть, что можете сделать настройки инструментальной панели и быстро разработать скромные приложения. Многие из примеров разработки, доступные с ArcGIS, являются просто фрагментами кода VBA и процедур, которые Вы можете копировать, восстанавливать и запускать в среде разработки VBA. VBA является идеальной средой моделирования, которая предоставляет средства для распространения настроек. В предыдущих разделах Вы могли видеть, что можете сделать настройки инструментальной панели и быстро разработать скромные приложения. Многие из примеров разработки, доступные с ArcGIS, являются просто фрагментами кода VBA и процедур, которые Вы можете копировать, восстанавливать и запускать в среде разработки VBA.

Что могут делать компоненты? Что могут делать компоненты? Все, что Вы можете делать в VBA, Вы можете делать с компонентом. Однако, обратное неверно, в чем и заключается одно из преимуществ использования своего компонента. Вы можете взять любые примеры руководства, которые видели до настоящего момента или любой из иллюстрированных примеров кода в приложениях и легко создать компонент, такой как команда или инструмент, используя один из языков разработки. В некоторых случаях Вам нужно сделать только малые изменения кода VBA, чтобы превратить его в компонент. Все, что Вы можете делать в VBA, Вы можете делать с компонентом. Однако, обратное неверно, в чем и заключается одно из преимуществ использования своего компонента. Вы можете взять любые примеры руководства, которые видели до настоящего момента или любой из иллюстрированных примеров кода в приложениях и легко создать компонент, такой как команда или инструмент, используя один из языков разработки. В некоторых случаях Вам нужно сделать только малые изменения кода VBA, чтобы превратить его в компонент. Например, если Вы работаете в Visual Basic 6, синтаксис почти идентичен VBA, требующий от Вас сделать минимальные изменения VBA и реализовать обязательные интерфейсы. Например, если Вы работаете в Visual Basic 6, синтаксис почти идентичен VBA, требующий от Вас сделать минимальные изменения VBA и реализовать обязательные интерфейсы. Важно повторить, что если Вы не намерены получать выгоды, предоставляемые компонентами, такие как использование кода в других документах или поставлять компонент другим пользователям, Вы можете продолжать делать Ваши настройки с VBA. В большинстве случаев эти разработки будут менее сложными и более быстрыми. Важно повторить, что если Вы не намерены получать выгоды, предоставляемые компонентами, такие как использование кода в других документах или поставлять компонент другим пользователям, Вы можете продолжать делать Ваши настройки с VBA. В большинстве случаев эти разработки будут менее сложными и более быстрыми.

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

Стыкуемые окна Стыкуемые окна Стыкуемое окно является окном, которое может существовать в плавающем состоянии или быть пристыкованным к главному окну приложения. Таблица содержания (Table of Contents) в ArcMap и Дерево обзора (Tree View) в ArcCatalog являются примерами стыкуемых окон. Стыкуемое окно является окном, которое может существовать в плавающем состоянии или быть пристыкованным к главному окну приложения. Таблица содержания (Table of Contents) в ArcMap и Дерево обзора (Tree View) в ArcCatalog являются примерами стыкуемых окон. Стыкуемые окна создаются путем реализации интерфейса IDockableWindowDef внутри класса. Вы используете свойство ChildHWND на этом интерфейсе, чтобы определить, какие окна будут передавать дескриптор hWnd контролей таких как форма, Listbox и т.п. Стыкуемые окна создаются путем реализации интерфейса IDockableWindowDef внутри класса. Вы используете свойство ChildHWND на этом интерфейсе, чтобы определить, какие окна будут передавать дескриптор hWnd контролей таких как форма, Listbox и т.п.

Добавление ресурсного файла Добавление ресурсного файла Ресурсный файл для проекта содержит картинку, которая будет использоваться как значок кнопки для команды вызова стыкуемого окна Overview. Ресурсный файл для проекта содержит картинку, которая будет использоваться как значок кнопки для команды вызова стыкуемого окна Overview. Нажмите правой клавишей в окне проекта и нажмите Add > Resource File. Нажмите правой клавишей в окне проекта и нажмите Add > Resource File. В диалоге Open a Resource File просмотрите директорию \DeveloperKit\Samples\ Developer_Guide_Scenarios\ArcGIS_Desktop\Ove rviewDocWin и нажмите OverView DockWin.res. В диалоге Open a Resource File просмотрите директорию \DeveloperKit\Samples\ Developer_Guide_Scenarios\ArcGIS_Desktop\Ove rviewDocWin и нажмите OverView DockWin.res. Вы можете перейти к ресурсному файлу и изучить картинку. Вы можете перейти к ресурсному файлу и изучить картинку.

Примеры иллюстрированного кода в среде VBA Примеры иллюстрированного кода в среде VBA Примеры иллюстрированного кода в данном разделе показывают основы программирования с компонентами COM в ArcObjects. Начните с запуска среды VBA в ArcMap или ArcCatalog и введите код. Пройдите пошагово код в отладчике VBA. Просмотрите рисунки в этом разделе и изучите связи между коклассами и интерфейсами. Внимательное чтение примеров в этом разделе дает Вам не только все важные концепции, нужные для разработки в ArcObjects, но и познакомит с самыми важными компонентами ArcObjects Примеры иллюстрированного кода в данном разделе показывают основы программирования с компонентами COM в ArcObjects. Начните с запуска среды VBA в ArcMap или ArcCatalog и введите код. Пройдите пошагово код в отладчике VBA. Просмотрите рисунки в этом разделе и изучите связи между коклассами и интерфейсами. Внимательное чтение примеров в этом разделе дает Вам не только все важные концепции, нужные для разработки в ArcObjects, но и познакомит с самыми важными компонентами ArcObjects

Вопросы для самопроверки Вопросы для самопроверки Что такое абстрактный класс? Приведите примеры абстрактных классов в ArcGIS. Где можно просмотреть абстрактные классы? Что такое абстрактный класс? Приведите примеры абстрактных классов в ArcGIS. Где можно просмотреть абстрактные классы? Какие виды отношений существуют между классами? Какие виды отношений существуют между классами? Допускает ли VB множественное наследование? Допускает ли VB множественное наследование? Может ли объект быть одновременно и сервером и клиентом? Может ли объект быть одновременно и сервером и клиентом? Могут ли два объекта иметь один и тот же интерфейс, но реализовать его по-разному? Могут ли два объекта иметь один и тот же интерфейс, но реализовать его по-разному? Какой интерфейс по умолчанию используют объекты приложений ArcMap и ArcCatalog? Какой интерфейс по умолчанию используют объекты приложений ArcMap и ArcCatalog? Для чего используются Категории компонентов? Для чего используются Категории компонентов? В каком разделе системного реестра регистрируются классы? В каком разделе системного реестра регистрируются классы?

Контрольные вопросы и задачи Контрольные вопросы и задачи Задача 1. Значения ячеек растра Задача 1. Значения ячеек растра Напишите программу, которая отображает значения ячеек первого растрового слоя на карте. Отображаемые значения могут быть из одноканального или многоканального растра. Эти значения определяются в местоположении курсора мыши, когда пользователь перемещает мышь над растровым слоем. Значения будут отображаться в нижнем левом углу окна ArcMap. Напишите программу, которая отображает значения ячеек первого растрового слоя на карте. Отображаемые значения могут быть из одноканального или многоканального растра. Эти значения определяются в местоположении курсора мыши, когда пользователь перемещает мышь над растровым слоем. Значения будут отображаться в нижнем левом углу окна ArcMap. Как обычно, сначала Вы создадите новую кнопку на инструментальной панели и добавите к ней исходный код. Как обычно, сначала Вы создадите новую кнопку на инструментальной панели и добавите к ней исходный код. Задача 2. Генерализация растровых данных Задача 2. Генерализация растровых данных Используйте ArcObjects для реализации задачи 3 Главы 6: генерализации данных с помощью последовательности инструментов: Reclassify, Majority Filter, Boundary clean, Region Group, Set Null, Nibble. Используйте ArcObjects для реализации задачи 3 Главы 6: генерализации данных с помощью последовательности инструментов: Reclassify, Majority Filter, Boundary clean, Region Group, Set Null, Nibble.

Задача 3. Непространственные запросы Задача 3. Непространственные запросы Выполните программно в любой удобной для Вас среде разработки все атрибутивные запросы, приведенные в контрольных задачах главы 2 Выполните программно в любой удобной для Вас среде разработки все атрибутивные запросы, приведенные в контрольных задачах главы 2 Задача 4. Пространственные запросы Задача 4. Пространственные запросы Выполните программно в любой удобной для Вас среде разработки все пространственные запросы, приведенные в контрольных задачах главы 2 Выполните программно в любой удобной для Вас среде разработки все пространственные запросы, приведенные в контрольных задачах главы 2 Задача 5. Создание компонента Задача 5. Создание компонента Напишите свой собственный компонент, склоняющий слово «рубль» (см. задачи главы 8). Напишите свой собственный компонент, склоняющий слово «рубль» (см. задачи главы 8).