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)基础知识的更多相关文章

  1. python快速改造:基础知识

    改造"Hacking"并不同于破坏"cracking" python快速改造:基础知识 一行就是一行,不管多少,不用加分号 交互式python解释器可以当作计算 ...

  2. 深入理解python(一)python语法总结:基础知识和对python中对象的理解

    用python也用了两年了,趁这次疫情想好好整理下. 大概想法是先对python一些知识点进行总结,之后就是根据python内核源码来对python的实现方式进行学习,不会阅读整个源码,,,但是应该会 ...

  3. python - 接口自动化 - 接口测试基础知识

    # -*- coding:utf-8 -*- '''@project: jiaxy@author: Jimmy@file: study_接口测试基础知识一.py@ide: PyCharm Commun ...

  4. Python学习之并发基础知识

    8 并发编程 8.1 基础知识 8.1.1 操作系统的定义 操作系统是存在于硬件与软件之间,管理.协调.调度软件与硬件的交互. 资源管理解决物理资源数量不足和合理分配资源这两个问题, 通俗来说,操作系 ...

  5. [Python笔记]第一篇:基础知识

    本篇主要内容有:什么是python.如何安装python.py解释器解释过程.字符集转换知识.传参.流程控制 初识Python 一.什么是Python Python是一种面向对象.解释型计算机程序设计 ...

  6. 【Numpy】python机器学习包Numpy基础知识学习

    一.安装:在之前的博客中已经写过:http://www.cnblogs.com/puyangsky/p/4763234.html 二.python数组切片知识: python中序列类有list.str ...

  7. python week09 Mysql 数据库基础知识

    第一篇:初识数据库 注:<基础概念,不再赘述,点开链接查看> 第二篇:库相关操作 一 系统数据库 information_schema: 虚拟库,不占用磁盘空间,存储的是数据库启动后的一些 ...

  8. python学习之-- Mysql 基础知识

    数据库介绍及MYSQL基础操作了解 关系型数据库(RDBMS)是按照数据结构来组织,存储和管理数据的仓库.特点:1:数据以表格的形式出现2:每行为各种记录名称3:每列为记录名称所对应的数据域4:许多的 ...

  9. python【1】-基础知识

    1.简介 python是一种解释性的.面向对象的.带有动态语义的高级程序设计语言. 廖雪峰网站:http://www.liaoxuefeng.com/wiki/001374738125095c955c ...

  10. 【Python升级录】--基础知识

    创建角色成功! 正在载入python........ [python介绍] python是一门动态解释性的强类型定义语言. python的创始人为吉多·范罗苏姆(Guido van Rossum).1 ...

随机推荐

  1. vue深入了解组件——处理边界情况

    一.访问元素&组件 在绝大多数情况下,我们最好不要触达另一个组件实例内部或手动操作DOM元素.不过也确实在一些情况下做这些事情是合适的. 1.1 访问根实例 在每个 new Vue 实例的子组 ...

  2. mysql改数据库名称

    第一种方法: 1.创建需要改成新名的数据库.2.mysqldum 导出要改名的数据库3.删除原来的旧库(确定是否真的需要)当然这种方法虽然安全,但是如果数据量大,会比较耗时,哎,当时连这种方法都没有想 ...

  3. nstall neovim on Ubuntu 16.04

    https://neovim.io/ To install NeoVim on Ubuntu, run 1 2 3 sudo add-apt-repository ppa:neovim-ppa/sta ...

  4. Windows10系统一键结束所有运行程序

    当电脑及其卡顿的时候,想打开任务管理器关掉所有运行的程序的时候,也会变得及其困难.因此之前你如果有犀利的小程序设置,这都不会是问题. 1)空白处右键-新建-快捷方式 2)将下列代码复制到下列框中(注意 ...

  5. Swagger+ springfox +Spring mvc

    简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法,参数和模型紧密集 ...

  6. rabbitMQ 常用命令

    启动监控管理器:rabbitmq-plugins enable rabbitmq_management 关闭监控管理器:rabbitmq-plugins disable rabbitmq_manage ...

  7. 如何设置maven的local repository目录

    step1:默认会放在~/.m2/repository目录下 (“~”代表用户的目录,比如windows下一般都是C:\Documents and Settings\[你的用户名]\.由于“Docum ...

  8. keras—多层感知器MLP—IMDb情感分析

    import urllib.request import os import tarfile from keras.datasets import imdb from keras.preprocess ...

  9. Mybatis的分页插件PageHelp:Page对象中的pageSize等属性无法序列化,无法转换为json字符串

    Page<User> page = new Page<>();        User user = new User();        user.setAge(20);   ...

  10. 25-javaweb接入支付宝支付接口

    想熟悉支付宝接口支付,后面可能会用,不如在课设中试试手.好吧听说支付宝不微信支付要简单些,就拿支付宝的先练下手吧. 基本学习流程,百度一下,找篇博客看下. 推荐下面这个篇博客,讲的挺好的,复制过来. ...