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,点击继续但无需代码按钮,如下图所示。

截图.png

点击后,弹出的界面如下图所示。

截图.png

点击【扩展】-【管理扩展】按钮,如下图所示。

截图.png

在右侧搜索ArcGIS Pro SDK,在搜索结果中,选择安装 ArcGIS Pro SDK for .Net。安装后,就可以新建项目了。新建项目的时候,界面如下图所示。

截图.png

新建后,项目默认情况下,包含的文件,如下图所示。

截图.png

这个文件都不需要修改,下面我们创建一个按钮,放到菜单上。,在程序集中,新建项目项,如下图所示。

截图.png

添加该按钮后,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 测试。");
        }
    }
}

点击下图红框中的运行按钮,如下图所示。

截图.png

系统会弹出下面的对话框,如下图所示。

截图.png

然后ArcGIS Pro并没有弹出,这个可能是ArcGIS Pro破解的问题,目前没找到如何解决。

点击第二个运行按钮,该按钮的意思是执行,但不调试。此时可以自动启动ArcGIS Pro主界面,如下图所示。

截图.png

点击从没有模板的情况入手,点击加载项主菜单,会发现我们刚才添加的插件按钮,如下图所示。

截图.png

点击该按钮,弹出我们代码中定义的信息,如下图所示。

截图.png

如果我们想自己定义对话框,可以定义普通的WPF窗体即可,不需要非得使用ArcGIS Pro SDK中的UI元素。如下图所示。

截图.png

修改代码,弹出新创建的Window1对话框,代码如下所示。

internal class Button1 : Button
{
    protected override void OnClick()
    {
        Window1 myWindow1 = new Window1
        {
            Owner = Application.Current.MainWindow
        };
        myWindow1.ShowDialog();
    }
}

编译运行,效果如下图所示。

截图.png

如果想把开发的插件发给其他人使用,在编译结果目录如下图所示。

截图.png

把这些文件拷贝到其他已经安装了ArcGIS Pro软件的电脑,双击ProAppModule1.esriAddinX文件,进行插件安装。

现在遇到最大的问题就是,直接调试,系统运行不起来,所以开发的时候没法调试,只能通过记录日志的方法逐步输出各重要参数的值,来排查错误。目前一直没找到办法解决这个问题。

posted @ 2023-02-19 17:32  mytudousi  阅读(474)  评论(2编辑  收藏  举报