ArcGIS Desktop开发基础(转)
http://www.cnblogs.com/maweifeng/archive/2006/07/19/455024.html? 原文地址
ArcGIS Desktop開發的類型
○ 自定義ArcMap、ArcCatalog的布局和界面,包括增加自定義的按鈕,指定相應的宏;
○ 使用VBA創建解決方案;
○ 創建ArcGIS擴展;
○ 創建獨立的應用程序(后面單獨說明)。
?
應用程序的插件架構
對于ArcGIS Desktop的開發,最關鍵的核心問題在于理解ArcGIS插件架構的運行機制,下面我們就對這個問題做一簡單介紹。插件架構的核心在于應用程序定義插件遵循的接口,然后由自定義組件來實現這個接口。其中有幾個關鍵點:
第一,主應用程序如何知道要加載插件
對于ArcGIS是使用注冊表,和MS Office類似,在注冊表中建立一個“component categories”的條目,而組件要被ArcGIS加載,就需要注冊后,在這里增加添加一個條目。對于現在的大多數.net程序和前COM時代的C或C++程序,則通過目錄來做到這點,通過遍歷目錄中的文件,然后通過反射機制(.net)來加載。
而COM程序,如VB環境下,則可以通過CreatObject來加載一個組件。
第二,插件的初始化
初始化包括2方面,一方面,主程序要創建一個變量,類型為插件所實現的接口,然后創建該插件,而同時,調用插件的初始化代碼,例如Connect,傳入需要主程序要暴露給插件的引用(App)。對于COM程序或者.net,是通過事件來做到這一點。主程序觸發初始化事件,該事件在插件的代碼中實現,根據傳來的變量,初始化插件的運行環境。對于C或者C++這樣的環境,可以通過函數指針和回調函數來實現這一點。
插件的初始化過程,就是插件插件和主程序通訊橋梁的過程,這個橋梁,對于ArcGIS,就是IApplication接口。
第三,插件和應用程序之間的通訊
其實上邊已經差不多說清楚了,對于主應用程序,是通過創建插件對象,獲得當前插件的實例,然后控制他,如果是插件是一個按鈕,那么初始化插件的時候,創建了按鈕對象,并綁定按鈕的click事件由插件的相應過程來處理。
對于插件,則由于在初始化中通過初始化事件(例如OnCreat或者Connect這樣的事件)的參數得到了當前應用程序的Application等對象實例,因此就可以使用這些對象實例來操作應用程序。
對于應用程序的一些狀態變化,可以通過定義事件,然后在插件代碼中響應這些事件來完成。
第四,用戶界面
Microsoft Office的COM加載宏的編寫,需要通過調用Office的Commandbar等對象來創建用戶界面元素,可以完全自定義。對于Photoshop這樣的程序,插件程序使用C或C++來完成,擴展的位置固定在幾個確定的擴展點。ArcGIS個人覺得基本上處于二者之間。
轉載于:https://www.cnblogs.com/lxGIS/p/3409357.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的ArcGIS Desktop开发基础(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ROW_NUMBER、RANK、DENS
- 下一篇: WebSockets 简介