十二、ArcGIS Desktop二次開發(fā).ppt_第1頁
十二、ArcGIS Desktop二次開發(fā).ppt_第2頁
十二、ArcGIS Desktop二次開發(fā).ppt_第3頁
十二、ArcGIS Desktop二次開發(fā).ppt_第4頁
十二、ArcGIS Desktop二次開發(fā).ppt_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、十二、ArcGIS Desktop二次開發(fā),ArcGIS Desktop的二次開發(fā)是根據(jù)用戶需求,設(shè)計(jì)系統(tǒng)界面,并實(shí)現(xiàn)系統(tǒng)界面上各個(gè)命令的功能。 ArcObjects(AO)是用于ArcGIS Desktop應(yīng)用系統(tǒng)開發(fā)的組件,我們可以通過編程語言調(diào)用AO組件,開發(fā)出各種基于AO的應(yīng)用模塊。 基于AO的開發(fā)主要有兩種方式:使用內(nèi)置的VBA編程語言開發(fā)和利用支持COM的編程語言開發(fā)。,定制系統(tǒng)界面 使用內(nèi)置的VBA編程語言實(shí)現(xiàn)系統(tǒng)功能 利用支持COM的編程語言實(shí)現(xiàn)系統(tǒng)功能,系統(tǒng)界面是由工具條(Toolbars)組成,工具條則是由命令(Commands)組成。 共有五種類型命令:菜單、按鈕、工具、

2、文本框和組合框。,通過Customize對(duì)話框可以定義系統(tǒng)用戶界面,包括三個(gè)方面內(nèi)容: 可以選擇加載哪些已有的工具條。 可以新建工具條。 可以在工具條中加載已有的命令或新建命令。 對(duì)每個(gè)命令可以定義它們的顯示屬性。,新建工具條,在Customize對(duì)話框中,點(diǎn)擊New,然后在New Toolbar對(duì)話框中輸入工具條名稱,并確定新檢工具條是保存在某個(gè)應(yīng)用程序模板中,還是保存在通用模板中(Normal.mxt)。,1,增加命令,新增工具條是一個(gè)空的工具條,我們可以根據(jù)需要在工具條增加命令。 點(diǎn)擊Customize對(duì)話框中的Commands選項(xiàng)卡,將顯示可以增加到工具條中的命令。其中,左邊顯示的是類

3、別,右邊顯示的是選中類別下的命令。同一類別,如Editor,顯示的命令與加載的工具條中的命令不完全一致,只有按鈕和工具。,2,通過拖拉方式可以把選中命令增加到工具條中;同樣,通過拖拉方式可以刪除工具條中命令(把工具條中的命令拖拉到工具條之外區(qū)域)。,如要在工具條中增加菜單或子菜單,在Categorie中選擇New Menu,并把Commands列表中的New Menu拖拉到工具條中。 可以選中命令并拖放到菜單或子菜單下作為菜單項(xiàng)。,如果用戶所需功能在Commands列表中沒有,這時(shí)就需要通過編程方式來新建Commands。 新建Commands首先是產(chǎn)生用戶界面控件(user interfac

4、e controls,簡稱UIControls),有四種類型UIControls:UIButton,UITool,UIComboBox,UIEditBox。,在Categorie下選中UIControls,點(diǎn)擊New UIControl,將出現(xiàn)對(duì)話框用于選擇UIControl類型,選擇后,一個(gè)新的UIControl將增加到UIControls類別下的Commands列表中,但需要連接相應(yīng)程序才能實(shí)現(xiàn)功能。,選中工具條中的某個(gè)命令,右擊鼠標(biāo),將出現(xiàn)命令顯示屬性的對(duì)話框。 命令可以以文本顯示,也可以以圖標(biāo)顯示,或同時(shí)顯示。可以改變顯示的文本和圖標(biāo)。,定義命令的顯示屬性,3,定制系統(tǒng)界面 使用內(nèi)置的

5、VBA編程語言實(shí)現(xiàn)系統(tǒng)功能 利用支持COM的編程語言實(shí)現(xiàn)系統(tǒng)功能,VBA介紹,VBA即Visual Basic for Application,是VB的簡化版本,內(nèi)置在ArcGIS Desktop中,因此,它可以利用很多ArcGIS Desktop 已有的功能。 VBA有它自己的開發(fā)工具(編輯器),包括編寫和存儲(chǔ)代碼的窗口、設(shè)計(jì)對(duì)話框的控件、調(diào)試代碼的工具等。,1,VBA編輯器,打開VBA編輯器有幾種方式: 點(diǎn)擊ToolsMacrosVisual Basic Editor。 在Customize窗口中雙擊UIControls類下的命令。 在打開Customize窗口情況下,選中工具條中的命令,

6、右擊鼠標(biāo),點(diǎn)擊View Source。 使用快捷鍵Alt+F11。,VBA編輯器有多個(gè)窗口,包括工程窗口、特性窗口、代碼編輯窗口等。 工程窗口顯示通用工程和用戶建立的應(yīng)用系統(tǒng)工程所包含的模塊。每個(gè)工程下面都有一個(gè)ThisDocument模塊,工程中所有UIControls的事件過程代碼都存儲(chǔ)在該模塊中。此外,還可以增加窗體模塊、基本模塊和類模塊。,選中工程,右擊鼠標(biāo),在彈出的菜單列表中點(diǎn)擊InsertUserForm,將插入一個(gè)窗體,同時(shí)打開工具箱。 可以把工具箱中的控件增加到窗體中,同時(shí)編寫相應(yīng)的代碼。同一窗體中的代碼存放在一個(gè)窗體模塊中。,編寫程序代碼,在代碼編輯窗口中,根據(jù)每個(gè)控件事件的

7、功能編寫實(shí)現(xiàn)該功能的程序代碼,如點(diǎn)擊Test1按鈕,將顯示信息“This is test result”,程序代碼如下:,Private Sub test_Click() MsgBox This is test result End Sub,2,例子VBA代碼,在ArcGIS幫助中,以VBA為關(guān)鍵字,可找到一些例子的VBA代碼及使用方法,如計(jì)算選中多邊形面積。,3,定制系統(tǒng)界面 利用VBA編程語言實(shí)現(xiàn)系統(tǒng)功能 利用支持COM的編程語言實(shí)現(xiàn)系統(tǒng)功能,利用支持COM的編程語言所開發(fā)的系統(tǒng)功能是以DLLs二進(jìn)制形式發(fā)布,因此,移植性好,可以實(shí)現(xiàn)在其它ArcGIS Desktop應(yīng)用系統(tǒng)中的即插即用,此外,能隱藏軟件代碼,保護(hù)軟件開發(fā)者的權(quán)益,但開發(fā)難度相對(duì)較大。,利用支持COM的編程語言開發(fā)系統(tǒng)功能一般有以下幾個(gè)步驟: 選擇一種支持COM的編程語言(如VB、VC、Delphi等)編寫應(yīng)用程序; 編譯成DLL; 注冊(cè)DLL; 在Customize對(duì)話框中,點(diǎn)擊Add from file,加載DLL文件; 把加載后顯示的命令拖放到工具條中。,ArcGIS Desktop提供了豐富的開發(fā)資源,包括開發(fā)例子、開發(fā)幫助(對(duì)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論