内容简介
《插件式GIS应用框架的设计与实现——基于C#和ArcGIS Engine 9.2》是一本从软件架构的角度来讨论应用框架开发的书籍,它以设计一个基于捕件式机制的NET应用框架为目标,并以开发一款具有实用性的GIS程序为主轴,详细地讨论了整个实现过程涉及的各项知识细节——NET框架、ArcGIS Engine 9.2组件集、第三方界面控件Janus System,GIS的两个常用算法及其实现、,NET程序的打包和部署等。无论是纯粹的.NET爱好者,还是对ArcGIS Engine感兴趣的GIS程序员,都能从奉书中获得自己想要的东西。
l 从软件架构的角度讨论GIS应用框架开发过程,为读者剖析GIS二次开发原理,
l 从“为什么”开始,以“怎么做”结束,并涉及多项.NET高级主题的内容和适用范围。
本文作者
蒋波涛,华南理工大学建筑学院建筑技术科学专业硕士毕业。所用所著,皆半路而成。目前在宁波市规划与地理信息中心从事项目管理与开发工作。关注GIS、设计模式和RIA技术,2006年曾出版《ArcObjects开发基础与技巧——基于VisualBasic.NET》一书。专长:ArcGIS平台开发技术(ArcGIS Desktop、ArcGIS Engine、ArcGIS Server和ArcIMS等)、Microsoft.NET平台开发技术(ASP.NET Web程序和Windows程序)、Ajax富客户端技术(YUI、ExtJS) 著作:《GIS for Web应用开发之道》(译)、《插件式GIS应用框架的设计与实现——基于C#和ArcGIS Engine 9.2》(著)、《ArcObjects开发基础与技巧——基于VisualBasic.NET》(著)。
推荐理由
《插件式GIS应用框架的设计与实现》特色:并非本单纯的C#语法书,它只祧选了C#中的某些高级主题进行深入讨论;并非一本ArcGls Engine 9.2组件包手册,它介绍的不是积木而是堆砌积木的方法;并非一本介绍使用拖曳控件方式开发程序的图书,它更关注如何设计和实现一个插件式应用框架;并非只讲解已知的GIS组件,它也介绍了两个实用的GIS算法并将其基于ArcGIS Engine实现;《插件式GIS应用框架的设计与实现》的软件成果并非一个供学习ArcGIS Engine 而做的简单的Demo它完全可以投入实际应用。
目录
前言
联系博文视点
第1章 走进插件式GIS应用框架
1.1 应用框架精讲
1.1.1 应用框架简介
1.1.2 应用框架的特点
1.1.3 GIS应用框架
1.2 插件式应用框架
1.3 ARCGIS ENGINE简介
1.3.1 ArcGIS产品框架
1.3.2 GIS开发组件——ArcGIS Engine
1.3.3 ArcGIS Engine产品类型
1.3.4 ArcGIS Engine 9.2新特性展现
1.4 第三方UI组件——JANUS SYSTEMS
1.5 小结
第2章 框架插件引擎设计
2.1 他山之石——ARCMAP插件机制
2.2 框架通信契约——接口
2.2.1 接口的秘密
2.2.2 实现接口与显式实现接口
2.2.3 C#的实现继承
2.2.4 继承和重用
2.3 框架宿主程序设计与实现
2.3.1 属性——合理冲破私有变量访问限制
2.3.2 动手——从宿主程序开始
2.4 框架通信契约设计
2.4.1 IPlugin接口
2.4.2 ICommand接口
2.4.3 ITool接口
2.4.4 IItemDef接口和实现
2.4.5 IMenuDef接口
2.4.6 IToolBarDef接口
2.4.7 DockableWindowDef接口
2.4.8 通信契约设计小结
2.5 插件容器设计与实现
2.5.1 集合
2.5.2 泛型机制
2.5.3 聚合法产生容器
2.5.4 产生插件容器
2.5.5 访问容器元素
2.6 动态加载框架插件
2.6.1 反射机制
2.6.2 考虑异常
2.6.3 插件的动态加载和对象生成
2.7 框架日志处理
2.7.1 一个Log4net例子
2.7.2 Log4net配置文件
2.7.3 框架的日志设计
2.8 插件的分类
2.8.1 类型转换与判别
2.8.2 插件分类的设计与实现
2.9 小结
第3章 框架宿主程序设计
3.1 静态UI设计
3.1.1 菜单和状态栏设计
3.1.2 浮动面板设计
3.2 插件UI对象
3.2.1 公共变量的设计
3.2.2 插件获取
3.2.3 解析ICommand和ITool对象
3.2.4 解析IMenuDef和IToolBarDef对象
3.2.5 解析IDockabieWindowDef对象
3.3 插件对象的事件处理
3.3.1 松散耦合的关键——委托与事件
3.3.2 ITool的Click事件
3.3.3 ICommand的Click事件
3.3.4 ITool的地图交互事件
3.4 小结
第4章 框架插件设计
4.1 ArcGIS Engine的扩展框架
4.1.1 基础类
4.1.2 内置Command和Tool
4.1.3 HookHelper原理及应用
4.2 如虎添翼的Geoprocessing
4.2.1 什么是Geoprocessing
4.2.2 运行Geoprocessing工具
4.2.3 Geoprocessing的批处理
4.3 插件的设计和实现
4.3.1 ICommand插件实例
4.3.2 ITool类型插件实例
4.3.3 使用内置ITool对象实例
4.3.4 IDockableWindowDef类型插件实例
4.4 小结
第5章 宿主程序的高级设计
5.1 两种视图的同步
5.1.1 共享同一份地图
5.1.2 同步类的使用
5.2 使用TOCControl控制图层
5.2.1 选择TOC控件的元素
5.2.2 TOC控件的鼠标交互
5.2.3 快捷菜单的设计实现
5.3 要素数据的查询显示
5.3.1从FeatureClass到DataTable
5.3.2 DataTable的显示
5.3.3要素的属性查询和空间定位
5.4 符号控件应用
5.4.1 SymbologyControl控件
5.4.2控件使用实例
5.5 小结
第6章 GIS算法的实现
第7章 框架辅助组件库设计
第8章 程序的部署与打包
……