当前位置: 首页 > news >正文

【ArcGIS Pro二次开发】(2):创建一个Add-in项目

Add-In即模块加载项,是一种能够快速扩展桌面应用程序功能的全新扩展方式。


一、创建新项目

1、打开VS2002,选择创建新项目。

2、在搜索框中输入“arcgis pro”,在搜索结果中选择【ArcGIS Pro 模块加载项】创建项目,注意选择语言应该是C#,而不是VB。

3、点击下一步,填写项目名称、位置和解决方案名称,可随意,点击创建。

生成的主界面如下:


二、添加一个按钮,并重写OnClick方法

1、在资源管理器中右键点击项目,选择【添加】—【新建项】。

2、在添加新项选项框中,左侧选择【ArcGIS】,主选框中选择【ArcGIS Pro 按钮】,点击添加。

生成按钮后,资源管理器里会新生成一个【Button1.cs】。

【Config.daml】文件里也会自动新增一段</button>代码:

<button id="ProAppModule1_Button1" caption="Button 1" className="Button1" loadOnClick="true" smallImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue16.png" largeImage="pack://application:,,,/ArcGIS.Desktop.Resources;component/Images/GenericButtonBlue32.png">
<tooltip heading="Tooltip Heading">Tooltip text<disabledText /></tooltip>
</button>

</group>中也会新增一行:

<button refID="ProAppModule1_Button1" size="large" />

代码运行的结果:当Pro加载时,会在“菜单栏-加载项-Group 1”中显示新增的按钮。这部分暂时先不修改。

3、双击新生成的【Button1.cs】,在OnClick()中输入:

MessageBox.Show("Hello World");

老惯例了……

三、调试

1、点击菜单【生成】—【生成解决方案】。

2、点击工具栏的【调试】按钮。系统会自动打开ArcGIS Pro。

3、点击打开的ArcGIS Pro的选项卡【加载项】,可以看到下面有一个新的组,组里有一个按钮,这就是我们刚刚新建的按钮。

4、点击按钮,弹出消息框,运行成功。

四、修改新增按钮的布局和属性

主要就是修改【Config.daml】文件的代码。修改后的局部代码如下:

<modules><insertModule id="ProAppModule1_Module" className="Module1" autoLoad="false" caption="Module1"><!-- uncomment to have the control hosted on a separate tab--><tabs><tab id="ProAppModule1_Tab1" caption="新的选项卡"><group refID="ProAppModule1_Group1"/></tab></tabs><groups><!-- comment this out if you have no controls on the Addin tab to avoidan empty group--><group id="ProAppModule1_Group1" caption="新的组" appearsOnAddInTab="false"><!-- host controls within groups --><button refID="ProAppModule1_Button1" size="large" /></group></groups><controls><!-- add your controls here --><button id="ProAppModule1_Button1" caption="新的按钮" className="Button1" loadOnClick="true" smallImage="Images/BexDog16.png" largeImage="Images/BexDog32.png"><tooltip heading="提示">这是提示信息<disabledText /></tooltip></button></controls></insertModule></modules>

修改后调试结果如下:

具体修改内容如下:

(1)新增了一个</tab>,内部引用了一个<group refID="ProAppModule1_Group1"/>。注意refID和下面group的ID要一致。

(2)caption即为各个控件在界面显示的标签。

(3)<group/>下的appearsOnAddInTab默认为true,即会添加到默认的【加载项】选项卡下,如果你新建了选项卡,建议改为【false】。

(4)</tooltip>即为提示信息。

(5)</button>下的【smallImage】和【largeImage】是按钮在界面上显示的图标。这里我更改了图标。首先需要在资源管理器中加入自己的图片,图片格式和大小建议参考系统自带的那2个。然后选择新添加的图片,在右侧属性栏中更改【生成操作】为【内容】。最后在代码里把路径修改好,见上面的代码。

如此,便修改完成。

五、生成Add-In插件

1、如果是第一次生成,点击菜单【生成】—【生成选定内容】。如果不是第一次,可以点击【重新生成选定内容】。待下方消息栏出现如下信息即为生成成功。

2、找到项目目录【bin\Debug\net6.0-windows】下的【.esriAddinX】文件,双击,即可安装到ArcGIS Pro上。

3、 打开ArcGIS Pro。结果和调试时的一致,即为安装成功。

4、点击【工程】—【加载项管理器】,即可看到刚刚安装的工具,如果想移除掉,可以点击右下方的【删除此加载项】。

至此,我们的第一个Add-in项目就算完成了。虽然很简陋。。

相关文章:

【ArcGIS Pro二次开发】(2):创建一个Add-in项目

Add-In即模块加载项&#xff0c;是一种能够快速扩展桌面应用程序功能的全新扩展方式。 一、创建新项目 1、打开VS2002&#xff0c;选择创建新项目。 2、在搜索框中输入“arcgis pro”&#xff0c;在搜索结果中选择【ArcGIS Pro 模块加载项】创建项目&#xff0c;注意选择语言应…...

浏览器缓存是如何提升网站访问速度的

提升速度&#xff0c;降低负载 浏览器访问一个页面时&#xff0c;会请求加载HTML、CSS和JS等静态资源&#xff0c;并把这些内容渲染到屏幕上。 对浏览器来说&#xff0c;如果页面没有更新&#xff0c;每次都去请求服务器是没有必要的。所以&#xff0c;把下载的资源缓存起来&…...

Linux中几个在终端中有趣的命令

uhh…最近我不知道该更新些什么&#xff0c;所以就更新Linux几个很有趣的命令 文章目录前言1.命令&#xff1a;sl安装 sl输出2. 命令&#xff1a;telnet命令&#xff1a;fortune安装fortune4.命令&#xff1a;rev&#xff08;反转&#xff09;安装rev5. 命令&#xff1a;factor…...

快来来试试SpringBoot3 中的新玩意~

你还在用OpenFeign嘛&#xff1f;快来试试 SpringBoot3 中的这个新玩意&#xff01;声明式HTTP调用 1、由来 Spring Boot3 去年底就已经正式发布&#xff0c;我也尝了一把鲜&#xff0c;最近有空会和小伙伴们慢慢聊聊 Spring Boot3 都给我们带来了哪些新东西。 今天我们就先…...

【寻人启事】达坦科技持续招人ing

​​​​​​​ ❤️一起来探索前沿科技&#xff0c;做有意思的事情~ 我们是谁 达坦科技&#xff08;DatenLord&#xff09;专注于打造新一代开源跨云存储平台。通过软硬件深度融合的方式打通云云壁垒&#xff0c;实现无限制跨云存储、跨云联通&#xff0c;建立海量异地、异构…...

【C/C++基础练习题】简单函数练习题

&#x1f349;内容专栏&#xff1a;【C/C要打好基础啊】 &#x1f349;本文内容&#xff1a;简单函数使用练习题&#xff08;复习之前写过的实验报告&#xff09; &#x1f349;本文作者&#xff1a;Melon西西 &#x1f349;发布时间 &#xff1a;2023.2.11 目录 1.给定某个年…...

【代码随想录训练营】【Day11】第五章|栈与队列|20. 有效的括号|1047. 删除字符串中的所有相邻重复项|150. 逆波兰表达式求值

20. 有效的括号 题目详细&#xff1a;LeetCode.20 由题可知&#xff0c;有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括号。 那么&#xff0c;我们可以利用栈后进先出的特点&#x…...

基于云原生分布式存储ceph实现k8s数据持久化

文章目录1、初始化集群1.1 集群机器配置1.2 配置主机名1.3 配置hosts文件1.4、配置互信1.5、关闭防火墙1.6、关闭selinux1.7、配置Ceph安装源1.8、配置时间同步1.9、安装基础软件包2、安装ceph集群2.1 安装ceph-deploy2.2 创建monitor节点2.3 安装ceph-monitor2.4 部署osd服务2…...

SpringMVC获取请求参数

SpringMVC获取请求参数 通过ServletAPI获取 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的报文对象。 RequestMapping("/testServletAPI") // request表示当前请求 public String testServletAPI(H…...

详解浏览器从输入URL到页面展示的过程

用户发出 URL 请求到页面开始解析的这个过程&#xff0c;就叫做导航。 1. 用户输入 当用户在地址栏中输入一个查询关键字时&#xff0c;地址栏会判断输入的关键字是搜索内容&#xff0c;还是请求的 URL。 当用户输入关键字并键入回车之后&#xff0c;这意味着当前页面即将要…...

【吉先生的Java全栈之路】

吉士先生Java全栈学习路线&#x1f9e1;第一阶段Java基础: 在第一阶段:我们要认真听讲,因为基础很重要!基础很重要!基础很重要!!! 重要的事情说三遍。在这里我们先学JavaSE路线&#xff1b;学完之后我们要去学第一个可视化组件编程《GUI》&#xff1b;然后写个《贪吃蛇》游戏耍…...

第二章 Opencv图像处理基本操作

目录1.读取图像1-1.imread()方法2.显示图像2-1.imshow()方法2-2.waitKey()方法2-3.destroyAllWindows()方法2-4.小总结3.保存图像3-1.imwrite()方法4.查看图像属性4-1.常见的三个图像属性1.读取图像 要对一幅图像进行处理&#xff0c;第一件事就是要读取这幅图像。 1-1.imread(…...

字节一面:在浏览器地址栏输入一个 URL 后回车,背后发生了什么?

近段时间&#xff0c;有小伙伴面试字节&#xff0c;说遇到一个面试题&#xff1a; 在浏览器地址栏输入一个 URL 后回车&#xff0c;背后发生了什么&#xff1f; 这里尼恩给大家做一下系统化、体系化的梳理&#xff0c;使得大家可以充分展示一下大家雄厚的 “技术肌肉”&#xf…...

推荐3dMax三维设计十大插件

3dMax是一款功能非常强大的三维设计软件&#xff0c;但无论它的功能多么强大&#xff0c;也不可能包含所有三维方面的功能&#xff0c;这时候&#xff0c;第三方插件可以很好的弥补和增强3dMax的基本功能&#xff0c;下面就给大家介绍十款非常不错的3dMax插件。 森林包&#xf…...

Arduino IDE 2.0.6中 ESP32开发环境搭建笔记

Arduino IDE 2.0.6中 ESP32开发环境搭建 Arduino IDE2.0 已上线一段时间&#xff0c;以后ESP32的学习转至新的IDE中 &#xff0c;需对开发环境进行。 Arduino IDE&#xff12;.&#xff10;与&#xff11;.&#xff10;有很大差异。原来环境搭建方法已完全不同。下文主要记录环…...

商品秒杀接口压测及优化

目录一、生成测试用户二、jmeter压测三、秒杀接口优化1、优化第一步&#xff1a;解决超卖2、优化第二步&#xff1a;Redis重复抢购3、优化第三步&#xff1a;Redis预减库存①商品初始化②预减库存一、生成测试用户 将UserUtils工具类导入到zmall-user模块中&#xff0c;运行生…...

NFC 项目前期准备工作

同学,别退出呀,我可是全网最牛逼的 WIFI/BT/GPS/NFC分析博主,我写了上百篇文章,请点击下面了解本专栏,进入本博主主页看看再走呗,一定不会让你后悔的,记得一定要去看主页置顶文章哦。 了解项目信息,FAE联系方式,驱动源码等驱动合入内核配置DTS驱动设备节点验证Push nf…...

(C语言)数据的存储

问&#xff1a;1. 数据类型有哪五大类&#xff1f;2. 数据类型的作用是什么与什么&#xff1f;3. 整型又可以具体分为哪五个&#xff1f;为什么字符char也归属于整型&#xff1f;4. 浮点型又可以具体分为哪两类&#xff1f;5. 构造类型就是什么&#xff1f;具体分为哪四类&…...

C语言深度剖析之文件操作

&#x1f497; &#x1f497; 博客:小怡同学 &#x1f497; &#x1f497; 个人简介:编程小萌新 &#x1f497; &#x1f497; 如果博客对大家有用的话&#xff0c;请点赞关注加关注 &#x1f31e; 什么是文件 磁盘上的文件是文件。 但是在程序设计中&#xff0c;我们一般谈的文…...

RNN神经网络初探

目录1. 神经网络与未来智能2. 回顾数据维度和神经网络1. 神经网络与未来智能 2. 回顾数据维度和神经网络 循环神经网络&#xff0c;主要用来处理时序的数据&#xff0c;它对每个词的顺序是有要求的。 循环神经网络如何保存记忆功能&#xff1f; 当前样本只有 3 个特征&#x…...

GitHub 74.2k Star的Redis,开发者必备的内存数据库

文章目录GitHub 74.2k Star的Redis&#xff0c;开发者必备的内存数据库核心能力覆盖多数开发场景实际使用建议GitHub 74.2k Star的Redis&#xff0c;开发者必备的内存数据库 Redis是GitHub上的热门开源项目&#xff0c;Star数达到74223&#xff0c;是很多开发者日常工作中常用…...

基于WebSocket的Web即时通讯后端架构设计与实战部署指南

1. 项目概述&#xff1a;一个面向开发者的Web即时通讯解决方案最近在折腾一个内部协作工具&#xff0c;需要集成一个稳定、可控且能深度定制的即时通讯模块。市面上成熟的IM SDK很多&#xff0c;但要么是黑盒&#xff0c;出了问题排查困难&#xff1b;要么是功能臃肿&#xff0…...

嵌入式系统开发实战:从架构设计到量产部署的工程指南

1. 从一场顶级技术盛会看嵌入式开发的演进与实战十多年前&#xff0c;也就是2010年的6月&#xff0c;芝加哥嵌入式系统大会&#xff08;ESC Chicago&#xff09;的第一天&#xff0c;被当时的媒体形容为“全明星阵容”的聚会。Dan Saks、Christian Legare、Bill Gatliff、David…...

从YOLOv1到YOLOv5:一个算法工程师的实战避坑与版本选择指南

从YOLOv1到YOLOv5&#xff1a;算法工程师的版本选择与实战调优指南 在计算机视觉领域&#xff0c;目标检测算法的发展日新月异&#xff0c;而YOLO(You Only Look Once)系列作为其中的佼佼者&#xff0c;凭借其出色的实时性和准确性&#xff0c;已成为工业界和学术界广泛采用的核…...

AgenticROS:用自然语言操控ROS2机器人的AI Agent接口实践

1. 项目概述&#xff1a;当AI大模型遇见机器人操作系统如果你和我一样&#xff0c;既对AI大模型的能力着迷&#xff0c;又对机器人开发充满兴趣&#xff0c;那么你肯定想过一个问题&#xff1a;能不能让Claude、Gemini这样的AI&#xff0c;像我们人类工程师一样&#xff0c;直接…...

taotoken的token plan套餐让长期使用的成本预测变得简单

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken 的 Token Plan 套餐让长期使用的成本预测变得简单 对于将大模型 API 深度集成到业务流程中的团队而言&#xff0c;成本管…...

Jellyfin智能片头检测解决方案:Intro Skipper插件技术指南

Jellyfin智能片头检测解决方案&#xff1a;Intro Skipper插件技术指南 【免费下载链接】intro-skipper Fingerprint audio to automatically detect and skip intro sequences in Jellyfin 项目地址: https://gitcode.com/gh_mirrors/in/intro-skipper Intro Skipper是一…...

4 生成器模式

生成器模式 的核心是&#xff1a;将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。简单说&#xff1a;像搭积木一样&#xff0c;用相同的步骤可以搭出不同样式的房子。建造房子的步骤是固定的&#xff1a;打地基建墙体安装屋顶装修内部但…...

如何在手机上免费播放任何视频格式?VLC for Android给你答案!

如何在手机上免费播放任何视频格式&#xff1f;VLC for Android给你答案&#xff01; 【免费下载链接】vlc-android VLC for Android, Android TV and ChromeOS 项目地址: https://gitcode.com/gh_mirrors/vl/vlc-android 你是否曾经遇到过这样的情况&#xff1a;下载了…...

5分钟掌握飞书文档高效转换:开源浏览器扩展的完整解决方案

5分钟掌握飞书文档高效转换&#xff1a;开源浏览器扩展的完整解决方案 【免费下载链接】cloud-document-converter Convert Lark Doc to Markdown 项目地址: https://gitcode.com/gh_mirrors/cl/cloud-document-converter 还在为飞书文档格式转换而头疼吗&#xff1f;复…...