首页 > 其他分享 >ArcGIS Pro SDK 001 基于SDK创建第一个插件

ArcGIS Pro SDK 001 基于SDK创建第一个插件

时间:2023-02-19 17:45:32浏览次数:28  
标签:插件 Pro 如下 ArcGIS 按钮 所示 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文件,进行插件安装。

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

标签:插件,Pro,如下,ArcGIS,按钮,所示,SDK
From: https://www.cnblogs.com/mytudousi/p/17135153.html

相关文章

  • Kubernetes集群部署Prometheus和Grafana
    一、环境规划K8S集群角色Ip主机名控制节点192.168.84.155master1工作节点192.168.84.156node1工作节点192.168.84.157node......
  • Linux基础 - 文件系统 /proc
      一、/proc文件系统1.1/proc:一个虚拟文件系统/proc文件系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做/proc)。最初的设计目的是允许......
  • @property 和 @synthesize
    .h中:@property是一个属性访问声明,扩号内支持以下几个属性:1,getter=getterName,setter=setterName,设置setter与getter的方法名2,readwrite,readonly,设置可供访问级别2,assign,s......
  • myEclipse 8.5 安装 svn 插件
    转的,我也是这么用的fatjar插件一般用不到。。。1、MyEclipse8.5默认安装的。首先从http://sourceforge.net/下载插件;2、新建文件myplugin,解压......
  • An attempt to set a process's DebugPort or ExceptionPort was made
    Howtoresolve"Cannotdebugpid,NTSTATUS0xC0000048"-"Anattempttosetaprocess'sDebugPortorExceptionPortwasmade..."2011/10/21 OnceIfou......
  • Visual Studio 集成了.NET 升级助手插件
    .NET团队2023年2月16日在官方博客上发布了名为“.NETUpgradeAssistant”的全新VisualStudio扩展,帮助开发人员升级.NET应用程序。这意味着程序员可以不通过命令行工具......
  • [React] React hook, component props for refactoring
    Ideaisputcomponentpropsinsidehook,andreturnfromhook,that'swaytokeepcomponentcleanandsimple Hook:import{MachineOptions}from"./machine......
  • Declaring InternalsVisibleTo in the csproj
    原文:DeclaringInternalsVisibleTointhecsproj-Meziantou'sblogWhileIprefertestingthepublicAPIofanassembly,it'ssometimesusefultotesttheimple......
  • Jmeter安装插件助手
    在用Jmeter做压力测试的同学应该都知道,有很多插件是需要我们自己下载的,就比如一些监控插件等那这些监控插件是在哪里下载的呢?一般有两种方式:1.在官网下载,导入到jmete......
  • 删删删!快速将旧版 .NET Framework 的 WPF / Windows Forms 项目格式(csproj) 迁移成新
    原文:http://blog.walterlv.com/post/introduce-new-style-csproj-into-net-framework.html现在再使用VisualStudio创建新的WPF项目时,将默认引诱你使用.NET6(或者5......