Python 插件(add-in)基础知识
1) Python插件为何物
一个插件(add-in)就是一个客户化,比如嵌入到ArcGIS应用程序中的工具条上的一系列工具,这些工具作为ArcGIS标准程序的补充可以为客户完成特殊任务。
ArcGIS10中加入了一种新的插件模型,这种新的模型可以让我们更方便地定制和扩展ArcGIS应用程序功能。新的插件模型为我们提供了一种基于声明的框架,在这个框架基础上我们可以轻松的创建一系列定制包,这些包存在于一个以.esriaddin结尾的压缩包中。
在ArcGIS10中,插件是采用.net或java以及XML进行编写的。XML描述定制信息,.net或java类提供定制行为。ArcObjects包括一个可以集成到开发环境,比如Eclipse,Microsoft VisualStudio的插件生成 向导,该向导可以简化开发过程。
ArcGIS10.1引入了Python作为开发插件的语言,这样就为插件开发提供了一种简单方便的解决方案。为了使Python插件开发更简单,你需要使用Python插件开发向导来声明定制类型。这个向导会生成创建插件所需的所有文件。该向导下载地址如下:http://www.arcgis.com/home/item.html?id=5f3aefe77f6b4f61ad3e4c62f30bff3b
一个Python插件是一个以.esriaddin结尾的压缩文件,该文件包含如下内容:
a) config.xml :该文件定义插件的静态信息比如,作者,版本,名称,类别等等。
b) Python script:是Python脚本,包含了业务逻辑。
c) Resource files:资源文件,比如图片,以及为了运行该插件功能所需要的其他数据。
作为单个的压缩文件,插件很容易在用户之间共享,也很容易插入到桌面程序中。插件管理的过程就是将该插件文件在一些特定的文件夹中增加或删除就可以。
2) 何时需要创建插件
在决定开发一个插件之前,你必须确定这是完成项目需求的正确途径。
假如你想在现有的工具条上增加一系列已经存在的工具,或者改变ArcGIS应用程序菜单或工具条的布局,你可以通过配置用户界面来满足你的偏好,这并不需要编程。
假如你需要运行一系列的地理数据处理工具来完成数据分析和管理,或生成一系列的地图,你首先应该考虑用ModelBuilder创建一模型,或者编写一个Python脚本。
假如你需要进行某种订制,比如为响应一个事件需要执行一个动作,或者需要用鼠标和地图显示进行交互,你就应该考虑开发一个插件。例如,你需要一个工具,在地图上拖动一个矩形框来定义一个感兴趣的区域。再例如一个应用程序扩展,该扩展实现任何时候当你从地图列表中删除一个图层,都需要对地图文档进行保存的功能。
Python 插件(add-in)基础知识的更多相关文章
- python快速改造:基础知识
改造"Hacking"并不同于破坏"cracking" python快速改造:基础知识 一行就是一行,不管多少,不用加分号 交互式python解释器可以当作计算 ...
- 深入理解python(一)python语法总结:基础知识和对python中对象的理解
用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会 ...
- python - 接口自动化 - 接口测试基础知识
# -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_接口测试基础知识一.py@ide: PyCharm Commun ...
- Python学习之并发基础知识
8 并发编程 8.1 基础知识 8.1.1 操作系统的定义 操作系统是存在于硬件与软件之间,管理.协调.调度软件与硬件的交互. 资源管理解决物理资源数量不足和合理分配资源这两个问题, 通俗来说,操作系 ...
- [Python笔记]第一篇:基础知识
本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...
- 【Numpy】python机器学习包Numpy基础知识学习
一.安装:在之前的博客中已经写过:http://www.cnblogs.com/puyangsky/p/4763234.html 二.python数组切片知识: python中序列类有list.str ...
- python week09 Mysql 数据库基础知识
第一篇:初识数据库 注:<基础概念,不再赘述,点开链接查看> 第二篇:库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些 ...
- python学习之-- Mysql 基础知识
数据库介绍及MYSQL基础操作了解 关系型数据库(RDBMS)是按照数据结构来组织,存储和管理数据的仓库.特点:1:数据以表格的形式出现2:每行为各种记录名称3:每列为记录名称所对应的数据域4:许多的 ...
- python【1】-基础知识
1.简介 python是一种解释性的.面向对象的.带有动态语义的高级程序设计语言. 廖雪峰网站:http://www.liaoxuefeng.com/wiki/001374738125095c955c ...
- 【Python升级录】--基础知识
创建角色成功! 正在载入python........ [python介绍] python是一门动态解释性的强类型定义语言. python的创始人为吉多·范罗苏姆(Guido van Rossum).1 ...
随机推荐
- UI5-文档-4.2-Bootstrap
在使用SAPUI5做一些事情之前,我们需要加载并初始化它.加载和初始化SAPUI5的过程称为引导.一旦引导完成,我们只需显示一个警告. Preview An alert "UI5 is re ...
- Status Code:405 Method Not Allowed
场景: 前端调用方法的时候,调不通,并且报错信息为405 因为我们公司前后端分离开发,于是前端就来找我说我写的接口有问题?于是我就在这里的postman中测试发现没问题啊. 然后我好好看了一下报错信息 ...
- Css定位元素
Css定位selenium极力推荐使用Css定位,而不是xpath定位元素,原因是css定位比xpath定位块,速度快,语法更加简洁 css常用的定位方法:1.find_element_by_css_ ...
- LuoguP1126 机器人搬重物(BFS)
题目链接:https://www.luogu.org/problemnew/show/P1126 思路:很不错的搜索题,用BFS,虐了我1天多才A掉 QAQ,细节很多. 1.每个状态包含行.列.方向. ...
- ubuntu的文本界面修改字体大小
使用命令: dpkg-reconfigure console-setup
- Windows phone自定义控件(无外观控件)——FlipPanel
编码前 无外观自定义控件的定义在上一篇中已经有了,至于这一篇的自定义控件,比之前多加入了状态的变化,就像默认的Button具有Pressed.Normal等状态.在状态转变的同时可以加上一些动画,可以 ...
- The Doors(几何+最短路,好题)
The Doors http://poj.org/problem?id=1556 Time Limit: 1000MS Memory Limit: 10000K Total Submissions ...
- ECMAScript3的原型
function Super(){ // 父类 } function Sub(){ // 子类 } Sub.prototype = new Super(); Sub.prototype.constru ...
- GridView,datalist添加序号列
GridView添加序号列:这个是经常需要的一个功能 <asp:TemplateField HeaderText="序号"> <ItemTemplate> ...
- 复制带随机指针的链表 · Copy List with Random Pointer
[抄题]: 给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点. 返回一个深拷贝的链表. [思维问题]: [一句话思路]: 完完全全地复制,否则不好操作. 1-> ...