ArcGIS Pro SDK 001 基于SDK创建第一个插件
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文件,进行插件安装。
现在遇到最大的问题就是,直接调试,系统运行不起来,所以开发的时候没法调试,只能通过记录日志的方法逐步输出各重要参数的值,来排查错误。目前一直没找到办法解决这个问题。