文章目錄
- 2.1 使用VBA進行桌面軟體開發
- 2.1.1 VBA開發方式
- 2.1.1 VBA代碼的安全性
- 2.2 使用DLL進行桌面軟體開發
- 2.2.1 DLL開發方式
- 2.2.2 DLL功能的應用部署
- 2.3 使用Add-in進行桌面軟體開發
- 2.4 使用ArcGIS Engine構建獨立應用程式
對于桌面GIS應用來說,ArcGIS平臺不僅提供了用于開發獨立運行的GIS應用軟體的二次開發工包ArcGIS Engine,還提供了對ArcGIS Deskop桌面軟體進行擴展的開發的話,在開發個具體的GIS 行業應用軟體時,程式員應該根據系統規權用戶水平和其體應用環境等設計相應的系統架構,從而決定是采用C/S還是B/S架構,如果采用C/S架構,是開發一個獨立的系統還是在現有的ArcGIS桌面軟體上進行擴展,因此,選擇合適的開發方式是進行GIS軟體設計的第一步,特別需要注意的是,并不是所有的GIS應用系統都一定要基于ArcGIS Enine開發,
2.1 使用VBA進行桌面軟體開發
VBA(Visual Basic for Applications)可理解為簡化的Visual Basic語言,它是VisualBasic 語言的子集,主要用于對支持VBA的Windows程式(稱為“宿主程式")進行擴展和定制,微軟公司的Word、Excel等Office辦公套件很早就集成了VBA語言,利用它可以進一步擴充這些宿主程式的功能,或者基于這些宿主程式開發較為復雜的應用系統,Visual Basic開發的系統可以脫離Visual Basic而運行,但是基于VBA開發的系統不能脫離宿主軟體運行,它的代碼存盤在宿主程式的檔案中,如對Word進行VBA定制和開發的代碼存盤在*.doc檔案中,對ArcMap進行擴展的代碼存盤于. .mxd地圖檔案中,
使用VBA進行系統擴展是一種輕量級的軟體開發模式, Esri目前不特別推薦使用VBA進行系統開發,而更側重于推薦使用Python語言進行擴展,但在很多情況下,特別是一些業務模式相對固定的生產和管理部門,并不需要復雜的GIS分析功能,而是更側重于地理資料的管理,并且這些用戶基本掌握了ArcGIS軟體的使用,通過VBA開發方式將一系列業務管理流程自動化為工具按鈕置于ArcGIS桌面軟體中,既能滿足行業管理的需求,又能充分利用ArcGIS本身強大的空間資料管理功能,這時使用VBA開發定制無疑是種較好的方式,
2.1.1 VBA開發方式
通過VBA開發環境進行ArcGIS桌面軟體的擴展和定制是最簡單的GIS軟體開發方式,開發者只需專注于ArGIS軟體不能提供的功能,對于ArcGIS軟體已經提供的工具,直接拿過來可以使用,
ArcGIS Desktop默認是沒有安裝VBA開發環境的,需要手動安裝安裝包中的VBACompatibility,如下圖所示,點擊setup.exe,一路完成即可,安裝完VBA之后,就可以在ArcMap的自定義選單下看到macro了,

1. 宏命令方式

將那些能夠自動執行某種操作的命令統稱為宏(Macros),是一種操作命令,
宏命令對話框如下:

VBA程式實作界面如下:

2. UIControl方式

2.1.1 VBA代碼的安全性
VBA代碼保存在檔案或者模板中,開發人員撰寫的代碼很容易被別人使用,為了保護,可以設定VBA密碼,增加安全性,
2.2 使用DLL進行桌面軟體開發
DLL(元件)是Windows 平臺下的一種類檔案編譯格式,這種格式的檔案可以被任何支持COM規則的語言所支持和參考,ArcObjects組件本身的物理檔案就是DLL檔案,DLL開發方式的特點是開發環境脫離了ArcGIS Desktop軟體,讀者可以使用自己熟悉的開發語言,如Java、C#等語言進行開發;開發的功能可以更為強大和靈活;編譯的結果是DLL檔案,封裝性更好,功能分發只需傳遞DLL檔案即可,后期維護也只需要更新相應的DLL檔案即可,而不需要對源程式做任何修改,
2.2.1 DLL開發方式

選擇命名空間參考,

以新建一個工具為例,在專案名稱上右鍵→添加→新建項,

由于我們開發的工具實際上是對已有的工具進行呼叫和擴充,因此選擇第二項ArcMap,MapControl,or PageLyaoutControl Tool,

2.2.2 DLL功能的應用部署
2.3 使用Add-in進行桌面軟體開發
1. addin介紹
ArcGIS從10.0開始支持addin(ArcGIS軟體中又叫作加載項)的方式進行插件制作,相對于以往9.x系列,addin的無論是從使用或者撰寫都更加方便快捷,通過開發語言,可以制作ArcGIS Desktop各個軟體模塊的插件,
ArcGIS Add-In插件開發是對ArcGIS Desktop應用軟體的功能擴充,ArcGIS Desktop 本身就是一個插件式框架,可以允許用戶根據自己的需求定制開發擴充功能,開發的功能主要是置于工具列上,
2. addin開發方式
ArcGIS Add-In插件開發有兩大型別,如下:
-
一是Python Add-In開發,但是需要從ESRI官網上下載Python加載項向導才能進行,,
-
二是基于Arc0bject/ArcGIS Engine的Add-In開發,又分command、tool、toolbar、Dockable Window開發,
(1)Python Add-In開發
Esri提供了Python加載項向導工具來實作Addin界面的搭建,可以到Esri官網去下載該工具Python加載項向導 ,從介紹來看,該設計器要求的最低ArcGIS版本為10.1 ,如下圖所示:

插件下載地址:https://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
雙擊安裝包中的addin_assistant.exe,即可,


(2)基于ArcObject/ArcGIS Engine的Add-In開發
2.4 使用ArcGIS Engine構建獨立應用程式
對大型、專業的GIS應用系統來講,由于功能的復雜性和軟體版本保護等原因,往往需要所包含的GIS功能脫離ArcGIS平臺軟體獨立運行,這就需要使用AE開發,
例1 :
打開VS2010,新建專案,

選擇需要添加的參考項,點擊Next,

勾選需要的軟體許可和擴展模塊,點擊Finish,

從工箱中添加ToolbarControl、TOCControl和MapControl,簡單的界面構造如下(如果想要更優美的界面,可以借助DevExpress插件來構造個性化的界面):

ToolbarControl屬性設定如下:

TOCControl屬性設定如下:

MapControl屬性設定如下:

運行程式,點擊Add Data按鈕加載一個柵格數,如下圖所示,

例2:

private void button1_Click(object sender, EventArgs e)
{
string sPath = Application.StartupPath + "\\world.mxd";
if (axMapControl1.CheckMxFile(sPath))
{
axMapControl1.LoadMxFile(sPath);
}
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/273763.html
標籤:其他
