1)创建一个项目

首先创建一个插件项目,本节介绍如何利用向导创建一个插件项目。

创建任何一个ArcGIS插件产品的过程都是一样的。

创建一个Python插件项目包括2个步骤:

a) 选择一个插件项目文件夹

打开addin_assistant.exe,程序会自动弹出目录选择对话框,必须选择一个空文件夹,或创建一个新的文件夹,点击确定。

b)输入项目设置

选择好文件夹后,在ProjectSettings 页面里输入该项目的元数据信息,这些信息会保存到config.xml文件中。这在发布的时候很重要。

设置好信息后,在向导的底部点击"保存"按钮,不要关闭向导。

点击"Add-InContents"页面,继续增加插件需要的其他项目。

2)创建一个Python插件按钮

本节创建的按钮功能是:放大到所选择的要素。需要2个步骤:

a)创建一个工具条或菜单

右键点击"TOOLBARS",点击新工具条菜单。右侧面板显示工具条属性。工具条必须有一个标题和ID。标题是给工具条一个名称,ID代表唯一名称用来区分不同的工具条。ID不能包含空格。Show Initially 选项表示程序启动的时候是否需要显示该工具条。

b)创建一个按钮

右键点击新的工具条,选择"NewButton",开始录入该按钮的各个属性,属性定义如下:

属性

描述

标题*

按钮标题

类*

Python类,当点击按钮的时候执行该类功能,在Python类里编写业务逻辑代码。采用cap-word命名方式给类命名。

ID*

唯一标示符,在一个项目中可能有多个按钮,不同按钮ID不能重复。你应该命名更有意义的ID名称。该ID不能包含空格。可以使用下划线。不能使用Python关键字。

ToolTip

详细描述,鼠标移动到该按钮上的时候显示。

Message

详细描述该按钮做什么。这个消息显示在ToolTip下面。

Image

必须是16*16大小的图片。格式必须为:.bmp,.jpg,等。该文件会拷贝到Images文件夹内。

Heading

帮助内容标题

Content

帮助的具体内容

输入完毕后点击保存按钮。

c)编辑Python脚本

实现功能,如果有选择中的要素,则将窗口视图缩放到该要素,如果没有则缩放到所有图层的全图状态。

在最初选择的文件夹下的Install文件夹下找到*.py文件,编辑该Python脚本,增加如下代码到onClick(self)内。

#Implementation of OnClick method of Button's class

defonClick(self):

# Get the current map document and thefirst data frame.

mxd =arcpy.mapping.MapDocument('current')

df =arcpy.mapping.ListDataFrames(mxd)[0]

# Call the zoomToSelectedFeatures()method of the data frame class

df.zoomToSelectedFeatures()

保存脚本。

ArcGIS Desktop python Add-in 创建一个插件的更多相关文章

  1. ArcGIS Desktop Python add-ins 共享和安装插件

    1)   共享和安装插件 共享Python插件的关键是.esriaddin文件;为了获取该插件功能,其他用户只要在本机执行安装操作或通过网络引用该插件就可以. ArcGIS插件安装工具 当用户双击一个 ...

  2. WordPress插件制作教程(一): 如何创建一个插件

    上一篇还是按照之前的教程流程,写了一篇WordPress插件制作教程概述,从这一篇开始就为大家具体讲解WordPress插件制作的内容.这一篇主要说一下插件的创建方法. 相信大家都知道插件的安装文件在 ...

  3. ArcGIS Desktop python Add-in 测试一个插件

    a)制作一个插件文件 先找到工作目录,双击运行makeaddin.py脚本.这个脚本拷贝所有插件需要的文件和文件夹并在工作目录形成一个压缩文件.该压缩文件名为工作目录名称加上".esriad ...

  4. python+mysql+flask创建一个微博应用(持续更新)

    微博应用的结构: 用户管理,包括登录管理,会话,用户角色,个人档案及用户头像. 数据库管理,包括数据库迁移处理. Web表单支持,包括字段检验和用于防止垃圾邮件的验证码功能. 大数据的分页功能. 全文 ...

  5. python使用__new__创建一个单例模式(单例对象)

    #单例模式:使一个类只产生一个对象.他们的id地址都指向同一个内存地址 第一步:理解谁创建了对象 # 单例模式# 首先明白,我们在创建一个类的对象的时候,其实是调用的这个类的父类,即继承object, ...

  6. ArcGIS Desktop Python add-ins 插件类型

    Python可以在ArcGIS 桌面程序中创建如下的插件类型: 插件类型 描述 按钮(button) 是一个简单功能定制形式,可以在点击情况下执行一些业务逻辑.它会执行一个或一系列的动作.按钮可以放在 ...

  7. ArcGIS Desktop python Add-in Python 插件的文件结构

    如上图所示: 插件文件夹在根目录下有一个config.xml文件,这个文件保存有在向导添加的描述该插件的定制信息. 插件还有一个安装文件夹,这个文件夹的主要功能是存放Python脚本. 你可以在安装文 ...

  8. python web编程 创建一个web服务器

    这里就介绍几个底层的用于创建web服务器的模块,其中最为主要的就是BaseHTTPServer,很多框架和web服务器就是在他们的基础上创建的 基础知识 要建立一个Web 服务,一个基本的服务器和一个 ...

  9. python使用wxPython创建一个简单的文本编辑器。

    ubuntu下通过'sudo apt-get install python-wxtools'下载wxPython.load和save函数用于加载和保存文件内容,button通过Bind函数绑定这两个函 ...

随机推荐

  1. python生成可执行文件保护源码

    工作中由于需要防止源代泄漏,需要将源代码隐藏,找到两种方法: 1.使用python生成的pyc文件. 这种方法的优点就是pyc文件生成很容易,缺点则是很容易通过工具得到源码,并且python版本不一致 ...

  2. ubuntu 安装qq方案

    from: http://blog.csdn.net/fuchaosz/article/details/51919607 安装wineQQ国际版 VirtualBox安装windows,再安装QQ,然 ...

  3. Oracle VM VirtualBox做好虚拟硬盘后,如何进一步修改虚拟硬盘的大小

    以管理员身份打开, 命令提示符窗口,然后利用命令cd进入Oracle VM VirtualBox安装目录,如下图: 我进入了Oracle VM VirtualBox安装目录:D:\Program Fi ...

  4. zabbix超级乱码解决问题

    个人而言,网上那些方法并不顶什么用,研究了一番总结出了自己的一个方法. 像这种,出现了严重乱码,也不是像网上说的那样把楷体复制过去就好.事实证明我复制过去好多次了,然而并没有什么用. 下面是我自己总结 ...

  5. web 前端遇到的问题

    前端小白一枚,经常遇到一些小问题,但是解决完吧,又记不住,哎,好记性不如烂笔头咯 1. 如何在js代码中设置checkbox选中? $("#select").attr('check ...

  6. 每月IT摘录201808--201809

    一.技术 海量数据的解决方案: 使用缓存: 页面静态化技术: 数据库优化: 分离数据库中活跃的数据: 批量读取和延迟修改: 读写分离: 使用NoSQL和Hadoop等技术: 分布式部署数据库: 应用服 ...

  7. android笔记:ListView及ArrayAdapter

    ListView用于展示大量数据,而数据无法直接传递给ListView,需要借助适配器adapter来完成. ArrayAdapter是最常用的adapter,可以通过泛型来指定要适配的数据类型.常见 ...

  8. 使用css实现特殊标志或图形

    1. 前言 由于图片占的空间比较大,且图片越多,越不好管理,所以有些时候,我们可以使用一些简单的标签样式来实现简单的图形标志来替代图片. 2. 实例展示: 三角形示例 示例代码: <style ...

  9. Swift4 - 动态计算UITableView中tableHeaderView的高度 - 获取子控件高度和宽度

    核心 : /// 获取 子控件高度 func sizeHeaderToFit(view:UIView) { view.setNeedsLayout() view.layoutIfNeeded() le ...

  10. 什么是Shell、Shell脚本

    Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言.作为命令语言,它交互式地解释和执行用户输入的命令:作为程序设计语言,它定义了各种 ...