內容簡介
《ArcGIS Engine開發從入門到精通》講解是基於ArcGIS Engine 9.3開發平台,介紹了相關的開發技術和工程套用,並用C#語言編程實現了工程實例。《ArcGIS Engine開發從入門到精通》共4篇分18章,第一篇基礎篇(第1~9章)集中介紹了 ArcGIS Engine基礎知識,包括開發基礎組件對象模型、ArcGIS Engine介紹、基於.NET的ArcGIS Engine的開發,ArcGIS Engine中的控制項、框架控制項介紹、控制項使用實例等,為以後套用ArcGIS Engine的各種接口,快速地實現系統的開發打下堅實的基礎;第二篇套用提高篇(第10~12章)介紹了ArcGIS Engine的套用框架、空間分析、ArcGIS Server服務、三維模式數據編輯等高級套用,通過學習這些高級套用可以使讀者得心應手地完成各種GIS系統的開發;第三篇綜合實例篇(第13章~第14章)用兩個綜合例子將前面講解的知識點串起來,讓讀者將學習的知識點融合起來,以便可以勝任項目開發的角色;第四篇常見疑難解答與經驗技巧集萃(第15~18章),本篇將一些開發過程中常見的異常、資料庫連線與釋放、數據載入以及一些經驗技巧做了介紹,本篇的例子主要是對開發過程中常碰到的問題和實戰技巧進行了匯總解答,以便幫助讀者提高工作效率。《ArcGIS Engine開發從入門到精通》從開發者的角度,全面討論了ArcGIS Engine開發的知識,讓讀者了解和掌握ArcGIS Engine開發的實戰技術,無論是想對ArcGIS Engine入門還是對ArcGIS Engine感興趣的GIS人員,都能從《ArcGIS Engine開發從入門到精通》中得到提高。
作者簡介
邱洪鋼,畢業於香港理工大學,主要從事地理信息系統的開發與項目管理工作。主要參與項目:“廣州市市政園林局'數字市政'系統一期”(此項目獲得國家信息產業部二等獎),“廣州市、深圳寶安、成都市自來水公司GIS系統”,“動感廣東WebGIS系統”,“廣州交警智慧型集成指揮調度系統”,“番禺沙灣國土局GIS系統”,“福建漳州龍海市土地局GIS系統”。現從事三維城市信息化系統建設。
圖書目錄
第一篇 基礎篇
第1章 開發基礎 2
1.1 組件對象模型 2
1.2 ArcGIS Engine介紹 2
1.2.1 ArcGIS Engine的體系結構 2
1.2.2 ArcGIS Engine的類庫 3
1.3 .NET平台概述 4
1.4 基於.NET的ArcGIS Engine的開發 5
1.5 本章小結 7
第2章 ArcGIS Engine中的控制項 8
2.1 製圖控制項介紹 8
2.1.1 地圖控制項 8
2.1.2 頁面布局控制項 10
2.2 3D控制項介紹 11
2.2.1 場景控制項——SceneControl 12
2.2.2 Globe控制項 13
2.2.3 SceneControl和GlobeControl的異同 14
2.3 框架控制項介紹 17
2.3.1 圖層樹控制項——TOCControl 17
2.3.2 工具列控制項——ToolbarControl 18
2.4 控制項使用實例 19
2.4.1 地圖載入、保存 19
2.4.2 圖層操作 23
2.4.3 繪製圖形 27
2.4.4 鷹眼圖功能實現 30
2.4.5 數據查詢與選擇 32
2.4.6 布局控制項與地圖控制項關聯 35
2.4.7 布局控制項中屬性設定與繪製元素 36
2.5 本章小結 41
第3章 幾何對象和空間坐標系 42
3.1 Geometry對象 42
3.2 Envelope對象 52
3.3 Curve對象 53
3.3.1 Segment對象 54
3.3.2 Path對象 57
3.3.3 Ring對象 58
3.3.4 PolyCurve對象 58
3.4 點對象 58
3.5 線對象 76
3.6 面對象 77
3.7 空間坐標系及變換 77
3.8 本章小結 78
第4章 地圖組成及圖層控制 79
4.1 地圖對象 79
4.1.1 IMap接口 79
4.1.2 IGraphicsContainer接口 83
4.1.3 IActiveView接口 85
4.1.4 IActiveViewEvents接口 86
4.1.5 IMapBookmark接口 86
4.1.6 ITableCollection接口 86
4.2 圖層對象 86
4.2.1 ILayer接口 86
4.2.2 要素圖層 86
4.2.3 CAD檔案 90
4.2.4 TIN圖層 91
4.2.5 GraphicsLayer 91
4.3 螢幕顯示對象 92
4.4 頁面布局對象 92
4.5 地圖排版 93
4.5.1 Page對象 93
4.5.2 SnapGrid對象 93
4.5.3 SnapGuides對象 94
4.5.4 RulerSettings對象 94
4.6 Element對象 94
4.6.1 圖形元素 95
4.6.2 框架元素 98
4.7 MapGrid對象模型 98
4.7.1 MapGrid對象 98
4.7.2 MapGridBorder對象 100
4.8 MapSurround對象 100
4.8.1 圖例對象 100
4.8.2 指北針對象 101
4.8.3 比例尺對象 101
4.8.4 比例文本對象 103
4.9 Style對象 104
4.10 添加、刪除圖層數據 105
4.10.1 矢量數據的添加 105
4.10.2 柵格數據的添加 106
4.10.3 刪除圖層數據 106
4.11 圖層控制 107
4.11.1 圖層間關係的調整 107
4.11.2 圖層顯示狀態的控制 107
4.12 本章小結 107
第5章 地圖製圖 108
5.1 地圖示注 108
5.2 符號及符號庫 109
5.2.1 顏色對象 110
5.2.2 Symbol對象 115
5.3 專題圖製作 135
5.3.1 SimpleRenderer專題圖 135
5.3.2 ClassBreakRenderer專題圖 135
5.3.3 UniqueValueRenderer專題圖 136
5.3.4 ProportionalSymbolRenderer專題圖 136
5.3.5 ChartRenderer專題圖 136
5.3.6 DotDensityRenderer專題圖 136
5.4 地圖列印輸出 147
5.4.1 Printer對象 147
5.4.2 Paper對象 147
5.4.3 在控制項中列印輸出 148
5.4.4 地圖的轉換輸出 148
5.4.5 ExportFileDialog對象 148
5.5 本章小結 148
第6章 空間數據管理 149
6.1 SDE及空間數據 149
6.1.1 SDE介紹 149
6.1.2 空間數據 150
6.2 空間資料庫及組織 152
6.2.1 混合型空間資料庫 152
6.2.2 集成型空間資料庫 153
6.3 空間數據模型 155
6.3.1 矢量模型(vector model) 156
6.3.2 柵格模型(raster model) 156
6.3.3 數字高程模型(DEM,DigitalElevation Model) 157
6.3.4 面向對象的數據模型(Object-Oriented Data Model) 157
6.3.5 混合數據模型(Hybrid Model) 158
6.4 Geodatabase體系結構 158
6.4.1 Geodatabase介紹 158
6.4.2 Geodatabase的體系結構 159
6.5 Geodatabase對象模型 160
6.5.1 Geodatabase中的主要類 160
6.5.2 Geodatabase中的其他常用類 161
6.6 Geodatabase的使用與開發 161
6.6.1 空間資料庫連線 161
6.6.2 創建新的數據集 161
6.6.3 空間數據的入庫 162
6.7 本章小結 168
第7章 數據編輯 169
7.1 簡介 169
7.2 捕捉功能設計與實現 169
7.3 要素編輯 174
7.3.1 開始編輯 174
7.3.2 結束編輯 174
7.3.3 圖形編輯 175
7.4 高級編輯 183
7.5 本章小結 183
第8章 柵格數據 184
8.1 簡介 184
8.2 訪問和創建柵格數據 184
8.3 柵格數據配準 185
8.4 柵格數據處理 185
8.4.1 柵格數據轉換 186
8.4.2 柵格數據變換 187
8.4.3 柵格數據疊置分析 187
8.4.4 柵格數據與矢量數據疊加分析 188
8.5 柵格圖層渲染 188
8.5.1 RasterRGBRenderer(柵格RGB符號化) 188
8.5.2 RasterUniqueValueRenderer(唯一值符號化) 189
8.5.3 RasterClassfyColorRamp Renderer(分類符號化) 190
8.5.4 RasterStretchColorRampRenderer 191
8.5.5 RasterDiscreteColorRenderer(點密度符號化) 192
8.6 本章小結 192
第9章 三維可視化 193
9.1 簡介 193
9.2 數據的三維顯示 193
9.2.1 DEM數據的載入 193
9.2.2 疊加紋理數據 194
9.2.3 分層設色 194
9.3 三維分析 200
9.3.1 三維場景屬性查詢 200
9.3.2 坡度分析 200
9.3.3 通視分析 200
9.3.4 剖面圖繪製 200
9.4 本章小結 204
第二篇 套用提高篇
第10章 空間分析 206
10.1 簡介 206
10.2 空間查詢 206
10.2.1 基於屬性查詢 207
10.2.2 基於空間位置查詢 208
10.2.3 要素選擇集 209
10.3 空間幾何圖形的集合運算 210
10.4 空間拓撲運算 210
10.5 空間關係運算 224
10.5.1 IRelationalOperator接口 225
10.5.2 IProximityOperator接口 236
10.6 網路及網路分析 240
10.6.1 主要對象類 240
10.6.2 類之間的相互關係 242
10.7 本章小結 242
第11章 管理ArcGIS Server服務 243
11.1 簡介 243
11.1.1 Arcgis Server架構 243
11.1.2 ArcGIS Server 9.3 的組成 244
11.2 連線到ArcGIS Server 245
11.2.1 連線方式和對象介紹 245
11.2.2 ServerObject的池化和非池化模式 246
11.2.3 有狀態和無狀態的GIS應用程式 251
11.3 ArcGIS Server管理系統實現 253
11.3.1 查詢功能實現 254
11.3.2 緩衝區查詢 258
11.4 本章小結 261
第12章 三維模式下數據編輯功能實現 262
12.1 簡介 262
12.2 ArcScene控制項下的數據編輯 262
12.3 ArcGlobe控制項下的數據編輯 262
12.4 本章小結 272
第三篇 綜合實例篇
第13章 符號庫管理系統的開發 274
13.1 簡介 274
13.2 系統設計 274
13.2.1 主程式界面設計 275
13.2.2 點狀符號 275
13.2.3 線狀符號 276
13.2.4 面狀符號 277
13.3 符號管理工具實現 279
13.4 本章小結 312
第14章 空間數據管理系統 313
14.1 簡介 313
14.2 空間數據管理框架設計 313
14.3 空間數據管理實現 314
14.4 本章小結 342
第四篇 常見疑難解答與經驗技巧集萃
第15章 空間資料庫連線與釋放 344
15.1 Shapefile 檔案 344
15.2 Coverage數據格式 344
15.3 Geodatabase數據格式 345
15.4 ArcSDE(Enterprise Geodatabase)資料庫連線 345
15.5 TIN不規則三角網 346
15.6 柵格數據 346
15.7 CAD數據 346
15.8 一般關係表 346
15.9 ArcSDE客戶端負載連線方式 347
15.10 ArcSDE連線Oracle 資料庫 348
15.11 ArcSDE連線釋放 348
15.12 自動關閉空閒SDE連線 348
第16章 空間資料庫載入 349
16.1 通過設定屬性載入個人資料庫 349
16.2 通過名稱載入個人資料庫 350
16.3 SDE資料庫 351
16.4 分圖層載入CAD圖層 352
16.5 整幅CAD圖的載入 352
第17章 程式出錯和異常 354
17.1 釋放資源異常問題 354
17.2 表結構操作錯誤 354
17.3 要素編輯的錯誤 355
17.4 Network I/O Error異常 355
17.5 數據插入錯誤 355
17.6 索引被占用異常 355
17.7 SDE導入空間數據錯誤 356
17.8 HRESULT:0x80040228異常 356
17.9 HRESULT:0x80040213異常 356
17.10 HRESULT:0x80040205 356
17.11 HRESULT:0x80010105(RPC_E_SERVERFAULT) 356
第18章 其他經驗技巧 357
18.1 ArcEngine中的先閃爍後刷新現象 357
18.2 ArcEngine中幾種數據的刪除方法和性能比較 357
18.3 數據游標 359
18.4 投影變換 359
18.5 ITopologicalOperator 360
18.6 緩衝區查詢 360
18.7 插入記錄效率 360