《开放式GIS开发与应用》讲解了一个基于插件的开放式应用开发框架,其目标是解决GIS综合应用系统的信息互通、功能高度复用、数据高度共享和快速构建GIS应用系统,通过可视化的插件协同建模,快速构建GIS应用,全面提升集成能力.《开放式GIS开发与应用》共,章,内容包括面向对象程序设计的基本原理以及设计模式的基本原则、应用开发框架及插件的基本概念、基于插件的开放式GIS应用开发框架、OG-ADF框架的文档视图结构、创建基于OG-ADF框架的命令与工具、OG-ADF开发框架的插件及事件处理机制、基于OG-ADF框架实现的服务SpatialDatabaseManageService及相对应的插件、基于OG-ADF框架的开发案例$$$广东省遥感水质监测信息管理系统等.
阅读《开放式GIS开发与应用》需要有面向对象程序设计、设计模式等基础知识,同时也需要有一定的GIS应用系统的开发经历与体会,适合于需要加强软件工程设计思维、提高工作效率的地理信息工程技术人员以及高校GIS专业研究生使用.
前言
第1章设计模式概述1
1.1面向对象程序设计1
1.1.1面向对象程序设计的历史发展1
1.1.2面向对象程序设计的基本概念2
1.1.3面向对象语言的基本特征5
1.1.4面向对象程序设计优势8
1.1.5面向对象的分析方法10
1.2设计模式的基本概念13
1.3设计模式的基本设计原则15
1.4基本设计模式简介16
1.4.1工厂方法模式16
1.4.2抽象工厂模式17
1.4.3建造者模式19
1.4.4原型模式20
1.4.5单例模式21
1.4.6装饰模式21
1.4.7适配器模式22
1.4.8桥接模式23
1.4.9组合模式24
1.4.10外观模式24
1.4.11孚兀模式26
1.4.12代理模式28
1.4.13解释器模式28
1.4.14责任链模式30
1.4.15命令模式31
1.4.16迭代器模式32
1.4.17中介者模式33
1.4.18备忘录模式34
1.4.19观察者模式35
1.4.20状态模式36
1.4.21策略模式36
1.4.22访问者模式37
1.4.23模板方法模式39
第2章开放式应用开发框架及插件40
2.1应用开发框架概述40
2.2基于插件的开放式应用框架42
2.2.1插件的基本概念42
2.2.2插件的实现方法43
2.2.3插件式应用框架44
第3章开放式GIS应用开发框架46
3.1GIS应用开发框架概述46
3.2框架用到的第三方组件47
3.2.1WeifenLuo 组件47
3.2.2ToolBarDock 组件48
3.3OG-ADF框架介绍49
3.3.1OG^ADF框架总体结构49
3.3.2框架的核心PLGApplication 51
3.3.3框架中对象的管理54
3.3.4框架应用的开始PLGAppMainForm 55
3.4OG-ADF框架的核心服务58
3.4.1PluginManageService 58
3.4.2CommandService 59
3.4.3DocumentManageService 64
3.4.4GeoBasicService 65
3.4.5DocumentContextMenuService 65
3.4.6DocumentControlContextMenuService 66
3.4.7PanelManageService 67
3.4.8StatusBarService 71
第4章文档-视图结构73
4.1文档-视图结构概述73
4.1.1IDocument 接口 73
4.1.2IDocumentView 接口 74
4.1.3IDocumentEvent 接口 75
4.1.4IGeoDocumentEvent 接口75
4.1.5PLGDocumentBase基类76
4.2基于MapContol控件的文档-视图76
4.2.1MapControl 控件介绍76
4.2.2IMapDocumentEvent 接口 77
4.2.3PLGMapDocument 类77
4.2.4文档行为外挂钩子DocumentActionHook 78
4.2.5文档事件处理外挂钩子DocumentEventHook 80
4.3基于SceneControl控件的文档-视图83
4.3.1SceneControl 控件介绍83
4.3.2ISceneDocumentEvent 接口 84
4.3.3PLGSceneDocument 类84
4.4基于GlobeControl控件的文档-视图87
4.4.1GlobeControl 控件介绍87
4.4.2IGlobeDocumentEvent 接口 88
4.4.3PLGGlobeDocument 类88
第5章命令与工具90
5.1命令90
5.1.1IGeoCommandHook 接口与 IGeoCommand 接口 90
5.1.2命令及命令“挂钩”的实现91
5.2工具96
5.2.1IGeoToolHook 接口与 IGeoTool 接口96
5.2.2工具及工具“挂钩”的实现98
第6章插件及事件处理107
6.1OG-ADF框架的插件机制107
6.1.1IPlugin 接口 107
6.1.2IDependentPlugin 接口与 IExposedObject接口108
6.1.3创建一个插件的实例109
6.2OG-ADF框架提供的几个插件介绍111
6.2.1PLGStarterPlugin 插件111
6.2.2PLGMapDocumentPlugin 插件113
6.2.3PLGMapContextMenuPlugin 插件118
6.2.4PLGTOCExplorer 插件123
6.3OOADF框架的事件处理124
第7 章SpatialDatabaseManageService 129
7.1SpatialDatabaseManageService 接口129
7.1.1IPLGDataset 系列接口 129
7.1.2ISpatialDatabaseManageService 接口 130
7.2SpatialDatabaseManageService 适配器131
7.3SpatialDatabaseManageService 相关插件及 UI 135
7.3.1PLGSpatialDatabaseExplorer 插件135
7.3.2SpatialDatabaseExplorer对话框136
7.3.3SpatialDatabaseManageService 的几个 UI 对话框147
第?章一个基于OCAADF框架的开发案例162
8.1系统总体介绍162
8.2系统几个主要插件166
附录:源代码内容说明175