ArcGis如何通过Python进行插件开发?

news2024/10/7 13:19:03

文章目录

  • 0.引言
  • 1.准备Python加载项工具
  • 2.创建一个加载项工具
  • 3.编写代码
  • 4.生成安装文件
  • 5.安装和调出加载项
  • 6.使用加载项

0.引言

  ArcGIS 插件(Add-ins)可以让用户更加容易的自定义和扩展ArcGIS Desktop应用程序,它创建一系列自定义工具提供了一个公开的基础框架,打包压缩成了一个单独的文件。 Add-ins插件能够很方便的在用户之间共享,因为它们既不需要安装程序 ,也不需要组件模型(COM)注册。本文记录实现基于Python的Arcgis插件开发的流程。

1.准备Python加载项工具

  下载Python加载项向导。
  Python加载项向导下载链接: https://desktop.arcgis.com/zh-cn/arcmap/10.4/analyze/python-addins/creating-an-add-in-project.htm
  在这里插入图片描述

2.创建一个加载项工具

  (1)创建一个工作目录
  解压“Python加载项向导”后,在addin_assistant目录下创建一个名为“work2”的工作目录,用于存放插件工程文件。
  在这里插入图片描述

  (2)执行addin_assistant.exe,指定工作目录为work2
  在这里插入图片描述

  (3)项目基本信息设置
  在这里插入图片描述

  (4)插件内容设置
  ① 创建工作条
  在这里插入图片描述

  ②创建一个按钮
  在这里插入图片描述

  ③工作目录下文件说明
  在这里插入图片描述

3.编写代码

  打开Install目录下的work2_addin.py编写业务代码
  在这里插入图片描述

def onClick(self):#将选择的对象缩放到全图
    mxd =arcpy.mapping.MapDocument('current')  
    df =arcpy.mapping.ListDataFrames(mxd)[0]  
    df.zoomToSelectedFeatures()  

4.生成安装文件

  在Python环境运行makeaddin.py生成安装文件。
  在这里插入图片描述

  本文在Arcgis自带的Python工具下进行运行。
  在这里插入图片描述

  执行结果:
  在这里插入图片描述

5.安装和调出加载项

  ①双击work2.esriaddin进行安装加载项
  在这里插入图片描述

  ②调出加载项
  在这里插入图片描述

6.使用加载项

  在这里插入图片描述

参考资料:
[1] GIS哼哈哈.创建一个简单的arcgis python-addin插件; 2020-06-01 [accessed 2023-07-07].
[2] yycGIS.ArcGIS Desktop python Add-in 创建一个插件; 2014-04-02 [accessed 2023-07-07].
[3] ArcGIS官网.获取 Python 加载项向导; [accessed 2023-07-07].
[4] weixin_39995439.python in arcgis_ArcGIS Desktop python Add-in 创建一个插件; 2020-11-24 [accessed 2023-07-07].

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/726776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux基础_3

一、Linux安全模型 资源分派: Authentication: 认证:验证用户身份Authorization: 授权:不同的用户设置不同权限Accouting|Audition: 审计 当用户成功登录时,系统会自动分配令牌token,包括:用户标识…

从CPU缓存结构到原子操作

文章目录 一、CPU缓存结构1.1 CPU的多级缓存1.2 Cache Line 二、写回策略三、缓存一致性问题及解决方案3.1 缓存一致性问题3.2 解决方案3.2.1 总线嗅探3.2.2 事务的串行化3.2.3 MESI 四、原子操作4.1 什么是原子操作4.2 c 标准库的原子类型4.2.1 atomic<T\>4.2.2 is_lock…

软件安全测试流程与方法分享(上)

安全测试是在IT软件产品的生命周期中&#xff0c;特别是产品开发基本完成到发布阶段&#xff0c;对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程。安全是软件产品的一个重要特性&#xff0c;安全测试也是软件测试重的一个重要类别&#xff0c;本系列文章我们与…

MySQL简单查询操作

系列文章目录 前言SELECT子句SELECT后面之间跟列名DISTINCT,ALL列表达式列更名 WHERE子句WHERE子句中可以使用的查询条件比较运算特殊比较运算符BETWEEN...AND...集合查询&#xff1a;IN模糊查询&#xff1a;LIKE空值比较&#xff1a;IS NULL 多重条件查询 ORDER BY子句排序复杂…

线性规划解的概念

一、线性规划的可行解 若x1,x2满足条件[1]-[4],则称向量为线性规划问题的一个可行解。 例如 其中x(1),x(2)为可行解&#xff0c;而x(3),x(4)不是可行解。 二、线性规划的可行域 所有可行解构成的集合称为该线性规划的可行域。 三、线性规划的最优解 使目标函数最大或最小的…

Git ① 通过git将本地两个项目进行合并

一、新建一个本地仓库 ① 新建一个文件夹&#xff0c;打开之后在命令行输入git init 初始化仓库。 git init ② 在新建的文件夹中随便创建一个文件&#xff08;这样才能新建新的分支&#xff0c;不然新建分支命令没有作用&#xff09; ③ 输入命令 git add . 和 git commit…

如何实现对视频录像文件的AI算法分析?

有用户提出需求&#xff0c;提供视频文件给平台&#xff0c;并进行AI算法分析。值得一提的是&#xff0c;我们的平台不仅仅可以基于AI算法&#xff0c;对设备实时传输的视频流进行分析&#xff0c;也能对视频回放录像文件进行智能分析。那么是如何实现的呢&#xff1f; EasyDSS…

Linux 共享内存

概念&#xff1a; 在Linux系统中&#xff0c;共享内存是一种用于进程间通信的机制&#xff0c;它允许多个进程共享同一块内存区域。 Linux 共享内存的作用和目的&#xff1a; Linux共享内存的主要目的是在不同的进程之间实现高效的数据交换和共享。它可以用于以下几个方面&…

在uniapp 小程序 vue中报 错 Cannot read property ‘substring‘ of undefined

是因 是因为对字符串使用substring的时候页面中的数据还没有加载 。 错误代码&#xff1a; 可以使用 v-if 修改为&#xff1a;

Alibaba官方上线!SpringBoot+SpringCloud全彩指南(终极版)

Alibaba作为国内一线互联网大厂&#xff0c;其中SpringCloudAlibaba更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道SpringCloudAlibaba其实面向微服务技术基本上都有的下面就给大家推荐一份Alibaba官网最新版&#xff1a;SpringSpringBootSpringCloud微服务全栈开…

2023 WAIC | 自然机器人向全球传递新一代智能自动化之声

2023年7月6日-7月8日&#xff0c;备受瞩目的“2023世界人工智能大会”在上海世博中心及世博展览馆隆重召开&#xff0c;本届大会的主题是“智联世界&#xff0c;生成未来”&#xff0c;大会由上海市人民政府和国家发改委、工信部、科技部、国家网信办、中国科学院、中国工程院、…

JavaScript实现归并排序算法详解

JavaScript实现归并排序算法详解 说明 归并排序&#xff08;Merge Sort&#xff09;算法&#xff0c;也叫合并排序&#xff0c;是创建在归并操作上的一种有效的排序算法。算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用&#xff0c;且各层…

Talk预告 | 南洋理工大学助理教授潘新钢:拖动你的GAN - 在生成图像流形上基于控制点的交互式图像编辑

本期为TechBeat人工智能社区第511期线上Talk&#xff01; 北京时间7月6日(周四)20:00&#xff0c;南洋理工大学 助理教授—潘新钢的Talk将准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “拖动你的GAN - 在生成图像流形上基于控制点的交互式图像编辑”&…

嵌入式_Keil (MDK - ARM) 的调试步骤

目录 1. 编译 调试 2. 复位 全速运行 3. 单步调试 4. 逐步调试 5. 跳出调试 6. 运行到光标处 7. 跳转到暂停行 8. 调试窗口 首先为什么需要在 MDK 中进行程序的调试呢&#xff1f; 在 MDK 中进行程序调试的主要目的是识别和解决程序中的问题和错误。 比如说找到程序中…

五种网络 I/O 模型

文章目录 1. 阻塞式 I/O 模型2. 非阻塞式 I/O 模型3. I/O 多路复用4. 信号驱动式 I/O5. 异步 I/O6. I/O 模型的分类 Unix 下有五种可用的 I/O 模型&#xff1a; 阻塞式 I/O 非阻塞式 I/O I/O 多路复用&#xff08;select/poll/epoll&#xff09; 信号驱动式 I/O&#xff08;…

【Spring MVC】Spring MVC程序开发教程:常见的注解及使用方式详情

前言 Spring MVC是一种常用的Web框架&#xff0c;它可以帮助开发人员快速构建可扩展的Web应用程序。为了提供更好的开发体验和更高的代码效率&#xff0c;Spring MVC提供了各种注解。这些注解可以用于控制器、请求参数、响应类型、表单数据验证、异常处理等方面。在本文中&…

卡尔曼滤波(附C++代码)

是什么 任何时候对于动态系统存在不确定信息&#xff0c;都可使用卡尔曼滤波&#xff08;Kalman Filter&#xff0c;下面简称为KF&#xff09;对系统下一步要做什么做出有根据的猜测。 KF对于连续变化的系统是理想的&#xff0c;优点是占用内存小而且速度快&#xff0c;非常适…

在Linux中安装RabbitMQ

RabbitMQ下载网址 Socat下载网址 erlang下载网址 RabbitMQ安装包依赖于Erlang语言包的支持&#xff0c;所以需要先安装Erlang语言包&#xff0c;再安装RabbitMQ安装包 通过Xftp软件将这三个压缩包上传到linux中的opt目录下 ,双击即可 在安装之前先查询…

Android oss policy上传

OSS Policy方式上传 一、 流程对比1.1 普通上传1.2 服务端签名后直传 二、获取上传的policy签名配置三、请求OSS上传文件四、调用应用服务器接口同步文件五、关于上传OSS报错注意事项六、附送链接 一、 流程对比 1.1 普通上传 缺点&#xff1a; 上传慢&#xff1a;用户数据需…

数学建模常用模型(五):多元回归模型

数学建模常用模型&#xff08;五&#xff09;&#xff1a;多元回归模型 由于客观事物内部规律的复杂性及人们认识程度的限制&#xff0c;无法分析实际对象内在的因果关系&#xff0c;建立合乎机理规律的数学模型。所以在遇到有些无法用机理分析建立数学模型的时候&#xff0c;…