ArcGIS Pro SDK只能開發ArcGIS Pro軟件上的插件,不能單獨開發獨立的應用程序。ArcMap是32位的,在處理大數據時,經常會崩潰,但同樣的數據和邏輯,因爲ArcGIS Pro是64位的,可以順利執行出來。所以目前我們開發程序的時候,遇到處理大數據的需求,使用ArcObjects SDK開發的程序如果運行不起來,就會基於ArcGIS Pro SDK開發。
電腦上先安裝好ArcGIS Pro,因爲我們最終做的插件是要安裝到ArcGIS Pro軟件上的。
打開Visual Studio 2022,點擊繼續但無需代碼按鈕,如下圖所示。
在右側搜索ArcGIS Pro SDK,在搜索結果中,選擇安裝 ArcGIS Pro SDK for .Net。安裝後,就可以新建項目了。新建項目的時候,界面如下圖所示。
這個文件都不需要修改,下面我們創建一個按鈕,放到菜單上。,在程序集中,新建項目項,如下圖所示。
添加該按鈕後,Config.daml文件內容會自動發生變化,加上了新建的這個按鈕。Config.daml格式我們後面再研究。此時我們可以在按鈕上添加邏輯,例如點擊按鈕,彈出信息對話框。代碼如下所示。
using ArcGIS.Desktop.Framework.Contracts; using ArcGIS.Desktop.Framework.Dialogs; namespace ProAppModule1 { internal class Button1 : Button { protected override void OnClick() { MessageBox.Show("ArcGIS Pro SDK 測試。"); } } }
然後ArcGIS Pro並沒有彈出,這個可能是ArcGIS Pro破解的問題,目前沒找到如何解決。
點擊第二個運行按鈕,該按鈕的意思是執行,但不調試。此時可以自動啓動ArcGIS Pro主界面,如下圖所示。
點擊從沒有模板的情況入手,點擊加載項主菜單,會發現我們剛纔添加的插件按鈕,如下圖所示。
如果我們想自己定義對話框,可以定義普通的WPF窗體即可,不需要非得使用ArcGIS Pro SDK中的UI元素。如下圖所示。
internal class Button1 : Button { protected override void OnClick() { Window1 myWindow1 = new Window1 { Owner = Application.Current.MainWindow }; myWindow1.ShowDialog(); } }
如果想把開發的插件發給其他人使用,在編譯結果目錄如下圖所示。
把這些文件拷貝到其他已經安裝了ArcGIS Pro軟件的電腦,雙擊ProAppModule1.esriAddinX文件,進行插件安裝。
現在遇到最大的問題就是,直接調試,系統運行不起來,所以開發的時候沒法調試,只能通過記錄日誌的方法逐步輸出各重要參數的值,來排查錯誤。目前一直沒找到辦法解決這個問題。