推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的ArcGIS Add-In开发及案例应用

更新时间:2019-12-20 22:08:49 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

在分析Python语言优越性的基础上,系统梳理了ArcGIS中按钮、工具、选项框、菜单、工具条、工具选项板、应用扩展等Add-In的内涵、依存关系及其存储形式,提出了面向任务的ArcGIS Add-In开发技术流程,并利用开发实例对开发过程进行论证.实验表明,利用Python对ArcGIS Add-In进行定制开发,能有效解决实际生产中空间数据处理的动态和多样性需求,其方法和过程具有一定的参考价值.


部分文件列表

文件名 大小
基于Python的ArcGIS_Add-In开发及案例应用.pdf 2M

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
Aug., 2019  
Vol.17, No.8  
2019 年 8 月  
第 17 卷第 8 期  
地 理 空 间 信 息  
GEOSPATIAL INFORMATION  
-
doi:10.3969/j.issn.1672 4623.2019.08.014  
基于 Python 的 ArcGIS Add-In 开发及  
案例应用  
张春义 1,2,程钢 1,张振辉 3  
(1. 河南理工大学测绘与国土信息工程学院,河南 焦作 454000;2. 中国特种设备检测研究院,北京 100029;  
3. 91206 部队,山东 青岛 266108)  
摘ꢀ 要:在分析 Python 语言优越性的基础上,系统梳理了 ArcGIS 中按钮、工具、选项框、菜单、工具条、工具选项板、应用  
扩展等 Add-In 的内涵、依存关系及其存储形式,提出了面向任务的 ArcGIS Add-In 开发技术流程,并利用开发实例对开发过  
程进行论证。实验表明,利用 Python ArcGIS Add-In 进行定制开发,能有效解决实际生产中空间数据处理的动态和多样性需  
求,其方法和过程具有一定的参考价值。  
关键词Add-InPython;定制开发;ArcGIS  
-
-
-
中图分类号P208  
文献标志码B  
文章编号1672 4623201908 0050 05  
随着地理信息科学理论与方法的逐步成熟以及计  
算机技术的发展,地理信息系统(GIS)软件的功能不  
断完善和丰富。然而,随着 GIS 在各个领域的深度应  
用,各种空间数据处理需求呈现出多样性和动态性特  
点,GIS 固有的功能和处理流程无法满足这些个性化  
开发的首选语言。本文在 ArcGIS 环境下,利用 Python  
ArcGIS Add-In 设计与开发的关键技术问题进行详细  
探讨,为有效解决实际生产中空间数据处理的动态和  
多样性需求提供参考。  
1
ArcGISꢀAdd-In及其开发模式  
需求 [1 。例如,在地图上自定义一个区域,并对其中  
]
的兴趣点进行标注;再如,当从地图列表中删除图层  
时,自动保存地图文档。基于空间数据处理的现实需  
求,对 GIS 软件已有的功能和工作流程进行个性化定  
制,是解决这一问题的有效途径。  
1.1ꢀ ArcGISꢀAdd-In  
ArcGIS Add-In 是一种自定义项,是为了完成自  
定义任务而开发的插件、扩展、应用程序集或工具栏  
等,它能够应用到 ArcMapArcCatalogArcGlobe 和  
ArcScene 等桌面应用程序,主要形式包括按钮、工具、  
组合框、菜单、工具条、工具选项板、应用程序扩展  
模块,如表 1。  
Add-In 又称为“附加或外接程序是一种能扩  
]
充应用程序功能的程序 [2 ,包含多种用户界面对象和  
非用户界面对象的插件包,可支持对象有按钮、工  
具、组合框、可停靠窗口、工具栏、菜单、应用程序  
表 1ꢀ ArcGISꢀAdd-In 类型及特征  
]
扩展等 [3 。在大型成熟商业软件中如 Microsoft Office、  
序号  
类型  
描述  
1
(button)  
通过点击触发一系列程序动作  
[
- ]  
MatlabVisual C++/C# 等都得到广泛应用 6 ArcGIS  
Add-In ArcGIS10 引入的一个能够快速扩展桌面应  
用程序功能的全新插件模型。这种开发方式的优点在  
于避免了独立开发的复杂性和繁琐性,利用宿主程序  
提供的 API 接口迅速定制功能以 Add-In 形式加载到  
ArcGIS 中使用,大大节省了开发成本,优化了资源配  
4
通过与用户交互执行相关的业务逻  
辑功能  
2
(Tools)  
组合框  
(Combo Boxs)  
允许用户选择下拉选项或手动增加  
新选项,并根据选项执行相应功能  
3
4
5
(Menus)  
按钮或其他菜单的容器  
按钮、工具、选项框、工具板和菜  
单的容器  
工具(Toolbars)  
工具选项板  
(Tool Palettes)  
以工具条为容器对一组相关工具  
分组  
6
7
-
]
[ 8 Python 作为一门高级程序设计语言,不仅具有  
7
应用扩展  
(Application Extensions)  
用来协调组件的激活状态,可用于  
监听并响应宿主程序事件  
传统编译语言的强大性和通用性,同时还具有简单脚  
]
本和解释语言的易用性 [9 ,加之免费开源、面向对象、  
理解各种 Add-In 形式的内涵,厘清它们之间的  
跨平台等特点,备受开发者青睐。鉴于 Python 开发  
Add-In 的诸多优点,ArcGIS10.1 Python 作为 Add-In  
依存关系是进行 Add-In 开发的基础和前提。本文将  
ArcGIS 中各种 Add-In 关系用树形结构表示于图 1,  
-
-
收稿日期2018 01 09。  
项目来源:国家自然科学基金资助项目 (41001226);教育部人文社会科学研究青年基金 (15YJCZH018);中国博士后科学基金面上资助  
-
项目(2015M582831河南省科技攻关项目 (162102210063);河南省高等学校骨干教师资助计划 (2012GGJS 055)2014 年度河南省  
-
-
教育厅人文社会科学研究项目 (2014 qn 068)。  
第 17 卷第 8 期  
张春义等 基于 Python 的 ArcGISꢀAdd-In 开发及案例应用  
51  
· ·  
清晰描述各种 Add-In 形式之间的包含和依存关系。从  
1 可知,按钮、工具和组合框是实现具体功能的叶  
节点,而菜单、工具条、工具选项板等是承载这些功  
能叶节点的容器和载体。应用程序扩展是一种不可见  
的隐式功能,往往用于监听宿主程序的某些事件,并  
作出相应的处理。  
Python Add-in Contents  
TOOLBARS  
EXTENSIONS  
MENUS  
Extension Extension  
Menu Menu  
Toolbar  
Toolbar  
Tool Palette ComboBox  
Button Menu  
Button Menu Tool  
Tool  
图 1ꢀ 各种 ArcGISꢀAdd-In 之间的关系  
1.2ꢀ ArcGISꢀAdd-Inꢀ开发模式  
2.2ꢀ ArcPy  
ArcGIS Add-In 开发模式主要分为 2 种:一种  
.NET 平台或利用 Java 语言调用 ArcGIS 的底层组件  
进行开发;一种利用 Python 脚本语言进行开发。  
1.2.1 基于 .NET Java ArcGIS Add-In 开发  
ArcGIS10 中,可通过使用 .NETJava 及可扩  
展标记语言 (XML) 来创建 Add-In。其中,XML 用于  
描述自定义内容,而 .NET Java 类用于提供自定义  
行为。ArcGIS 供应商将 Add-In 向导包含在 ArcObjects  
软件开发工具包 (SDK) 中,并将其关联到 Eclipse、  
Microsoft Visual Studio 等开发环境。利用 .NET 平台或  
Java 开发 Add-In,开发流程繁琐、编码复杂,对编程  
人员要求较高。  
ArcPy 一个 ArcGIS 能模块站点包,利用  
Python 执行地理数据分析、数据转换、数据管理和地  
图自动化创建等功能的逻辑基础。ArcPy 提供了可访问  
地理处理工具和其他函数、类和模块的功能,可方便  
地创建各种工作流程。利用 ArcPy 编写 ArcGIS 应用程  
序和脚本,可以访问和使用由来自不同领域 GIS 专业  
人员和程序员开发的 Python 模块,大大减少了开发者  
的工作。  
一般来说,ArcPy 的组织类型有工具、函数、类  
和模块等几种形式。地理处理工具是可通过 ArcPy 访  
问的工具函数。除工具函数外,ArcPy 还提供了多种  
非工具函数,用于执行某些特定任务且能够嵌入已有  
的程序功能中,如列出数据集、检索数据集及数据属  
性,或执行其他脚本任务等。工具函数和非工具函数  
有所区别:①记录方式。每个工具在 ArcGIS Desktop  
帮助系统中都有自己的工具参考页面,函数则记录  
ArcPy 文档中。②返回对象。工具会返回 Result 对  
象,而函数不会;工具可通过访问各种函数生成消  
息(如 GetMessages()而函数不会生成消息。③授  
权。工具通过产品级别进行授权,函数则不需要授  
权,它们随 ArcPy 一起安装。ArcPy 类通常用于地理  
处理工具的参数设置,为创建事物提供一个架构,如  
SpatialReference Extent 类,类可用来创建对象,表示  
具体实例。ArcPy 包含用于支持专业领域功能的一系列  
模块,包括数据访问模块 (Arcpy.da)、制图模块 (Arcpy.  
mapping)ArcGIS Spatial Analyst 扩展模块 (Arcpy.sa) 和  
ArcGIS Network Analyst 扩展模块 (Arcpy.na) 等。  
2.3ꢀ 开发流程  
1.2.2 基于 Python ArcGIS Add-In 开发  
ESRI ArcGIS 9 开始引入了 Python 脚本语言,  
利用 Python 来扩展 ArcGIS 功能和实现任务自动化。  
Python 被封装在 ArcGIS 的安装程序中,并被直接嵌  
ArcGIS 的许多地理处理集中。ArcGIS 10 进一步将  
Python 整合到 Desktop 用户界面中,目前 Python 已经  
]
ESRI 正式作为 ArcGIS 首选的脚本工具 [10 ArcGIS  
10.1 Python 引入到创建桌面 Add-In 的语言列表中,  
为用户提供了扩展 Desktop 功能的新的解决方案,使  
自定义和扩展 ArcGIS 桌面应用程序变得更加容易。  
Python Add-In 开发模式为用户提供了填空式的开发模  
式,简化了编程工作,降低了开发难度,提高了开发  
速度,部署更加方便、安全,更容易共享。  
2
Python开发 ArcGISꢀAdd-In的环境及流程  
2.1ꢀ 开发环境  
Python 开发 ArcGIS Add-In 需要做好以下开发准  
Python 开发 ArcGIS Add-In 采用图 2 的技术流程。  
1)需求分析:通过调查方式了解用户在实际生产  
过程中 ArcGIS 自带工具的不足及其实际需求。  
备:①确保在安装 ArcGIS10.1 的时候安装 Python;  
②安装 Python Add-In 向导。  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载