积跬步、至千里

测绘·建库·制图·数据分析

ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始

本文为本站站长张继文原创,首发在张继文个人网站(熠其华网),版权归张继文所有。

根据中华人民共和国版权法,任何未经许可传播及洗稿重制等行为将被起诉。

 

是的,要用到时下被炒得火热的Python 。

但是我的教程一般不会要求你掌握Python,你稍微懂点代码——比如你会用excel公式,你会用字段计算器进行简单逻辑判断——就行。

如果你想要实现很厉害的功能的话,确实需要一定的代码基础,花点钱去学习也是应该的。

这个系列文章是从实例角度来进行讲解,主要目的是带你入门,偶尔会根据需要说一下算法,但是不会太详细,不过这不影响你照着教程做从而得到实例的结果。

那么第一篇,没有任何复杂的函数,先让你”做”出一个来试试手,就像你不会做饭但是煮方便面还是很在行—— 一样。

什么叫做”把常用工具放到面板上”?如下图标注的红框里从左到右第二个图标,我用鼠标指在上面,显示的”批量删除字段”这个按钮,就是本篇要实现的东西(其它的不是)。

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

制作这样的按钮你需要从官方下载一个配套的免费工具,绿色的不需要安装,工具界面很简单,网上有很多对此的说明,无非就是添加按钮,菜单之类的,是简单英文。下面是从官方说明复制下来的,版面限制我只放了一部分,已经会的不需要看

创建加载项项目—帮助 | ArcGIS for Desktop创建任何加载项的第一步都是创建加载项项目。

创建加载项项目

创建任何加载项的第一步都是创建加载项项目。本主题将指导您完成使用 Python 加载项向导创建新加载项项目的分步过程。

必须确保已安装 Python 加载项向导。如果尚未下载此向导,请单击此处下载。以下说明定义了 ArcMap 的加载项项目。为任何支持的 ArcGIS for Desktop 软件产品创建加载项项目的过程与此并无差异。

创建 Python 加载项项目包含两个步骤:

选择加载项项目文件夹。

在安装 “Python 加载项向导” 的位置处找到 addin_assistant.exe 文件并双击。将打开浏览文件夹对话框,您需要在其中输入用来存储加载项项目的文件夹。必须选择一个空文件夹或创建一个新文件夹。单击确定。

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

输入项目设置。

选择工作文件夹之后,将显示向导的第一个面板。可在此处输入项目设置。这些设置是项目的元数据,存储在 config.xml 文件中。使用加载项时,这些设置在部署期间十分重要。

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

以下是项目设置选项卡上显示的各个设置的描述:

参数设置

说明

工作文件夹(必填)

用于保存所需加载项文件和文件夹的选定文件夹。

产品(必填)

保存加载项的 ArcGIS for Desktop 产品。选件包括 ArcCatalogArcMapArcGlobe ArcScene

名称(必填)

项目的名称。此名称应为包含所有针对此项目开发的加载项内容的描述性名称。

版本(必填)

项目版本用于确定加载项的部署版本号。默认情况下使用值 0.1。可以通过增加小数点后一位的值来提高版本(例如,0.20.31.01.1 等)。

公司(可选)

组织的名称。

描述(可选)

项目用途的简短描述。此描述应包含针对此项目开发的所有加载项内容。

作者(可选)

创建项目的人员的姓名。

图像(可选)

如果要在项目中包含图像,可以选择一个图像。该图像将复制到保存项目时创建的名为图像的文件夹中。该文件夹位于工作文件夹内。

属性名称、公司、版本、描述和图像均在部署加载项项目后使用(有关此过程的相关步骤,请参阅共享加载项)。下图举例说明了部署项目后该元数据如何用于加载项管理器中。加载项管理器位于桌面应用程序中的自定义菜单下。

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

输入项目设置后,单击向导底部的保存按钮。不要关闭向导。以下步骤涵盖加载项自定义内容的创建。单击加载项内容选项卡,前进到以下主题之一,了解有关创建加载项的信息和步骤:

进入正题:

打开官方的工具,按照你的需求把该填的都填上,记得起一个你自己认识的名字,这对新手很重要。第一次运行的话需要你事先新建一个文件夹,你的最后成果都在这个新建的文件夹里,你期间要添加的代码文件也在里面:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

涉及到ID的尽量要用英文,不然你可能会被无穷无尽的错误提示活活整死,而你偏偏又不知道问题出在哪儿。

点完SAVE后最小化或者关闭这个官方工具,进入你最初新建的那个工程文件夹,我的是这样的:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

你打开文件夹Install后会看到里面有个py文件:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

用记事本或其它编辑器打开后你会看到这个:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

你应该使用编辑器,我用的是notepad++,做为新手这个很有用,软件不大而且免费。为什么要用编辑器是因为python对缩进有要求,在编辑器界面你能很直观地看到你的缩进是否正确。

由于这第一讲我们只需要做的就是把一个常用工具做成一个按钮,这样方便随时使用而不是在小红盒里一层一层去翻,有的时候还可能忘了在哪个类目下……所以并不会需要很复杂的代码,一个函数就可以:

GPToolDialog(toolbox, tool_name)

这个函数的作用是”打开地理处理工具对话框”。如果你是老读者的话下面的解释你应该会很熟悉:

GPToolDialog(工具箱位置, 工具名称)

所以,大胆地把这个函数加在你打开的py文件里吧:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

如果你对python有些了解的话,看到上图第九行的def后你会想到,啊~下面的我得缩进,所以,用空格或tab将新添加的函数前面加上缩进:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

事到如今,你需要自己找你要添加的工具的位置以及英文的名称。还是以删除字段工具为例:

打开arcmap,删除字段工具在这个位置:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

对它右键属性,你能看到它的英文名叫DeleteField

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

你再对数据管理工具箱上右键属性,你会看到这个工具箱的路径:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

每个人的安装位置不一样,你不要照我的填。

复制这个路径,把它粘到函数的括号里,再把工具英文名也粘/敲进去:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

注意括号内的路径和工具名是怎么写的。
路径前面加了一个r’,路径结束位置也有一个半角单引号 ,路径和工具名之间用半角逗号隔开,这和你用excel公式是一个套路。工具名也要用半角引号前后圈上。

至于为什么加引号(单双都可),我觉得不需要解释。但是前面那个加r的是什么意思,如果你真想学习的话请你自己Google或者bing一下”python前面加r”,就会有大把的解释,找一个看起来像是人话的回答好好看,相信你会理解。不能理解也无所谓,反正这儿你就这么写,往后你就知道了。

添加完之后保存一下,退出编辑器回到你的文件夹。

找到”makeaddin.py”,运行它。有的电脑双击就能运行,有的需要右键选择程序运行,这取决于你之前安装的python环境。运行一闪而过之后你会在文件夹里看到一个尾号为XXX. Esriaddin的东西,这个就是你人生中做的第一个”arcgis插件”(其实就是个按钮)。

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

关闭你的arcmap,然后双击你新生成出来的”插件”,安装它:

《ArcGIS|照做就能做插件(一)先从“把常用工具放到面板上”开始》

提示瑟克赛斯否就是安装成功了。

你再打开arcmap,你会看到有个浮动的小按钮漂在软件界面上,你拖动它可以把它固定在面板上,这就是文章前面那一排东西。

你点一下你新做的按钮,你会看到打开了你在代码中添加的工具。

你可以理解成这是一个工具快捷方式。我把它当作教程入门的第一篇,是为了让你马上就能做出一个东西,而且还能用,你可以给自己用也可以给别人用顺便还能zhuangbilty。

不要小看这个没啥用的快捷方式。比如我做一个这个删除字段的按钮,是因为我工作过程中经常需要用到空间连接,你用过空间连接的话你就知道输出的结果里面有很多你用不上的字段,操作频繁的话每次一层一层点开工具箱找删除字段实在是太麻烦了。所以我单独做了一个这个工具的按钮就是给自己一个方便。

相信这个东西做为入门是可以了。以后的教程会逐步增加复杂度,放心我不会直接拿一大堆代码糊你脸上然后说”自己看”之类的话,起码吧,我会希望能够看了之后可以自己举一反三。

至于过程中遇到什么bug问题的话,最好的办法就是搜索引擎。

那么就到这里吧。这篇文章居然是免费的是不是很意外?

微信扫码关注公众号,回复“邀请码”获取用来注册的信息。部分文章加密需要登陆的是本站原创文章,不同于网络上其它教程,请珍惜劳动成果。
点赞