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 ...
随机推荐
- Java Socket通信实例
一.简单的客户端与服务器一对一连接: Socket通信的步骤: 1.创建ServerSocket和Socket 2.打开连接到Scket的输入/输出流 3.按照协议对Socket进行读/写操作 4.关 ...
- state介绍
state是salt最核心的功能,通过预先定制好的sls(salt state file)文件对被控主机进行状态管理,支持包括程序包(pkg).文件(file).网络配置(network).系统服务( ...
- 漫谈四种神经网络序列解码模型【附示例代码】 glimpse attention
漫谈四种神经网络序列解码模型[附示例代码] http://jacoxu.com/encoder_decoder/ [视觉注意力的循环神经网络模型]http://blog.csdn.net/leo_xu ...
- mahout版本兼容问题
运行mahout in action上的cluster示例时报错:Error: Found interface org.apache.hadoop.mapreduce.Counter, but cla ...
- too few PGs per OSD (20 < min 30)
ceph osd pool set replicapool pg_num 150 ceph osd pool set replicapool pgp_num 150
- LuoguP1226 【模板】快速幂||取余运算
题目链接:https://www.luogu.org/problemnew/show/P1226 第一次学快速幂,将别人对快速幂原理的解释简要概括一下: 计算a^b时,直接乘的话计算次数为b,而快速幂 ...
- ECMAScript6新特性之Array API
一 填充数组 var arr = new Array(5); arr.fill('abc',2,4); console.log('Array.prototype.fill',arr); // [und ...
- My97DatePicker 日历控件
My97DatePicker 是一款非常强大的日历控件,使用也非常简单,也能修改源码,牛逼我就不吹了,自己用用看 使用 1.引入 <script language="javascrip ...
- sqlserver 字符串拆分和取某分隔符之前的字符串
ALTER FUNCTION [dbo].[f_splitSTR]( ), --待分拆的字符串 ) --数据分隔符 )RETURNS @re TABLE( col varchar(max)) AS B ...
- JAVA知识积累 给HttpClient添加Socks代理
本文描述http client使用socks代理过程中需要注意的几个方面:1,socks5支持用户密码授权:2,支持https:3,支持让代理服务器解析DNS: 使用代理创建Socket 从原理上来看 ...