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 ...
随机推荐
- visibility和display
visibility: hidden----将元素隐藏,但是在网页中该占的位置还是占着.display: none----将元素的显示设为无,即在网页中不占任何的位置.
- ubuntu下安装jdk,tomcat,mysql,ftp,telnet,svn
需求分析:自己弄了个小网站,想放到云服务器上,同时把自己积累的代码也放上去,服务器上的文件可以简单的在windows上查看,也可以方便的通过windows连接linux服务器. 解决:运行网站要用到j ...
- Python Spider 抓取猫眼电影TOP100
""" 抓取猫眼电影TOP100 """ import re import time import requests from bs4 im ...
- 解决IE下载 apk/ipa 变成zip:Android 手机应用程序文件下载服务器 配置解决方法
解决IE apk/ipa变成zip:Android 手机应用程序文件下载服务器 配置解决方法 APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Da ...
- keras各种优化方法总结 SGDmomentumnesterov
http://blog.csdn.net/luo123n/article/details/48239963 前言 这里讨论的优化问题指的是,给定目标函数f(x),我们需要找到一组参数x,使得f(x)的 ...
- Centos7 vnc
这是一个关于怎样在你的 CentOS 7 上安装配置 VNC 服务的教程.当然这个教程也适合 RHEL 7 .在这个教程里,我们将学习什么是 VNC 以及怎样在 CentOS 7 上安装配置 VNC ...
- html中的innerHTML
首先看个例子 <html> <head> <script type="text/javascript"> function getInnerHT ...
- 归并排序/合并排序c++实现
#include <iostream>#include<string.h> using namespace std;class merges{public:void merge ...
- 最近公共祖先 · Lowest Common Ancestor
[抄题]: Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. “Th ...
- Mybatis的分页插件PageHelp:Page对象中的pageSize等属性无法序列化,无法转换为json字符串
Page<User> page = new Page<>(); User user = new User(); user.setAge(20); ...