1 / 15

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

Глава 9. Разработка приложений с помощью ArcObjects ArcGIS. В этой главе: Как читать и интерпретировать диаграммы модели объекта ArcGIS Разработка расширений приложения: создание нового класса для расширения Разработка компонента стыкуемого окна

lore
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related