日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ArcGIS Desktop开发基础(转)

發布時間:2024/9/5 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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开发基础(转)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。