《開放式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