內 容 簡 介
Autodesk作為全球最大的地理信息系統軟體供應商之一,致力於為全球用戶提供優秀的地理信息系統解決方案。本書作為Autodesk公司官方開發的教材,所介紹的產品正是國內用戶所熟悉的MapGuide和AutoCAD Map 3D。
MapGuide是套用最廣泛的地理空間數據發布(WebGIS)平台之一,可以幫助用戶輕鬆地將地理空間數據發布到Internet/Intranet,幫助企業低成本地實現與內部團隊、用戶、公眾以及其他企業套用系統共享地理空間數據。Autodesk Map 3D是全球領先的創建與管理空間數據的工程GIS平台, 使用FDO(Feature Data Objects)技術對GIS數據的直接存取,其完全包含了AutoCAD的全部功能,能夠輕鬆地套用AutoCAD的工具編輯和維護地理空間信息。
本書由Autodesk上海研發中心的AutoCAD Map 3D和MapGuide研發人員經過一年的努力編寫而成,他們具有豐富的AutoCAD Map 3D和MapGuide研發經驗,對AutoCAD Map 3D和MapGuide有著深刻的理解。毫無疑問,本書是目前最具權威的AutoCAD Map 3D和MapGuide二次開發指南。
序
Autodesk為財富雜誌票選的全球前1000大企業之一,作為世界領先的二維、三維數位化設計及管理軟體供應商,一直致力於為製造業、工程建設行業、傳媒娛樂業、地理信息產業等領域行業提供卓越的軟體和解決方案。到2009年,Autodesk在全球已經擁有超過900萬的用戶。
Autodesk地理空間解決方案架起了CAD技術與GIS技術之間的橋樑,使企業能夠把工程數據與地理空間數據結合在一起進行設計、管理和分析,並實現這些數據在設計部門、GIS部門以及其他業務部門之間充分共享。從項目規劃、設計,到項目的實施與後期管理與維護,歐特克為企業的管理地理空間數據資產提供了強大的數據互操作功能以及充分的整合平台。
Autodesk地理空間解決方案提供了完整的產品線。AutoCAD Map 3D是全球領先的創建與管理空間數據的工程GIS平台,使用FDO(Feature Data Objects)技術對GIS數據的直接存取,而不必理會數據的如何保存以及以何種格式保存的。而且,AutoCAD Map 3D完全包含了AutoCAD的全部功能,使之能夠輕鬆地套用AutoCAD的工具編輯和維護地理空間信息。Autodesk MapGuide是先進地理空間數據發布平台,可以幫助用戶輕鬆地將地理空間數據發布到Internet/ Intranet,幫助企業低成本地實現與內部團隊、用戶、公眾以及其他企業套用系統共享地理空間數據。
中國經過30年的改革開放,地理信息產業已經初具規模,正在進入快速發展階段。中國社會經濟的快速發展為地理信息產業的發展提供了動力,預計到2010年,我國地理信息產業年總產值將達到800億至1000億元。近年來,中國已成為Autodesk全球投資的重點,目前,在中國上海的研發中心已經擁有了近1300人的研發團隊,成為Autodesk全球最大的海外研發團隊。同時,Autodesk亦致力於為用戶提供更好的地理信息系統解決方案,促進中國地理信息產業的發展。
近年來,越來越多的用戶採用Autodesk提供的地理信息系統解決方案,但是介紹Autodesk地理信息系統解決方案中文資料還非常匱乏。我非常欣喜地看到,來自Autodesk中國上海研發中心的AutoCAD Map 3D和MapGuide研發人員經過一年的努力,終於使這個問題得到了解決。本書全面地介紹了FDO技術,MapGuide的架構、原始碼、API,AutoCAD Map 3D的架構和API,是一本難得的介紹Autodesk提供的地理信息系統解決方案的書籍,尤其是MapGuide的章節,可以說是目前全球最為詳盡地介紹MapGuide的資料。我相信,本書一定會成為FDO、MapGuide和AutoCAD Map 3D的二次開發寶典。
Autodesk擁有先進的地理信息系統解決方案,不斷推出更多更好的產品,希望為中國地理信息產業的騰飛盡一份力。
黃健銘
歐特克中國研究院(ACRD)院長
前 言
五年前,在參加Autodesk的面試時,面試官問我為什麼想加入Autodesk,我給了他一個非常冠冕堂皇的理由:我希望自己編寫的軟體能夠被世界各地成千上萬的人使用,而Autodesk正是這樣一家能夠為我實現這一夢想的公司。聽了這句話,可能有人要向我扔磚頭了——太假了。這話確實有點冠冕堂皇,但是並不假。構想你辛辛苦苦地開發出來一個程式卻無人使用,肯定心裡不好受,因為這等於你的成果沒有得到別人的認可。
在Autodesk工作的這些年,我一直從事AutoCAD Map 3D和MapGuide的研發工作。AutoCAD Map 3D和MapGuide這兩個產品在美洲、歐洲和日本都非常成功,但是在中國用戶並不算非常流行。為什麼呢?原因有很多。從一個開發人員的角度來看,一個重要的原因是市面上和網際網路上能夠找到的系統的中文產品培訓資料和學習材料非常少。AutoCAD Map 3D和MapGuide是一個平台,在多數情況下需要對它們進行定製,即二次開發,才能滿足用戶的需求,但到目前為止沒有一本系統地介紹AutoCAD Map 3D和MapGuide二次開發的中文書籍。作為這些產品的開發人員,我覺得自己有責任去寫這樣一本書,讓更多的人能夠熟悉AutoCAD Map 3D和MapGuide,讓更多的人能夠用上能夠滿足他們需求的產品。
一年前(2009年5月),我開始籌劃編寫這本書,計畫半年內完成這本書。在最初的四個月里,我幾乎花費了所有的業餘時間。然而,我發現即使再花費一倍的時間,也難以在半年內完成這本書,因為我雖然從事AutoCAD Map 3D和MapGuide的開發工作多年,仍有許多功能和代碼並不是足夠了解,必須先做一定的學習和研究,如果匆忙地完成這本書,那么這本書肯定無法令人滿意。於是,我做了一個決定:將計畫改為一年,並且找一些志同道合的同事一起來完成這本書。很快,我的同事燕澤軒和劉鑫銓加入了寫作的隊伍,他們分別完成了本書中FDO部分的主要內容(章節2.2~2.6.7和2.9~2.13)和MapGuide客戶端部分的主要內容(章節5.1、5.2.1、5.2.4、5.2.8、5.3.1、5.3.2、5.3.4、15.3、17.4)。
經過了一年的努力,這本書終於完稿。回想這一年,這是頗有收穫的一年,也是充滿愧疚的一年。這是頗有收穫的一年,是因為在編寫本書的過程中,我對AutoCAD Map 3D和MapGuide的認識也上升了一個層次,搞清了許多以前理解得不到位的概念;這是充滿愧疚的一年,是因為為了編寫本書,我幾乎花費了自己所有的業餘時間,無法陪伴妻子和女兒。有一天,女兒和我說:“爸爸就知道工作,我再也不要和你玩了。”雖然知道童言無忌,但我心中仍然覺著酸酸的,希望以後可以多陪陪孩子。對於我的妻子,我無法用“感激”兩個字來表達她對我的支持。她不僅承擔了幾乎所有的家務和孩子的教育,而且還幫我校對了本書,給我提出了許多非常好的建議。
讀者定位
本書主要是服務於AutoCAD Map 3D和MapGuide的二次開發人員。我們假設讀者已經對AutoCAD Map 3D和MapGuide的使用有了一個基本的了解,所以對它們基本功能的使用方法不再講解,當然,對於一些相對比較高級的功能,本書還是會講解其使用方法。
內容組織
本書內容主要分為FDO、MapGuide和AutoCAD Map 3D三大部分,不僅介紹了已經發布版本的功能,同時介紹在2010年發布的版本FDO 3.5、MapGuide開源版2.2、Autodesk MapGuide企業版2011和AutoCAD Map 3D 2011中引入的許多新功能。
本書的內容組織如下。
FDO:第2章
MapGuide:第3章~第17章
AutoCAD Map 3D:第18章
FDO(Feature Data Object)是Autodesk地理信息系統解決方案的核心技術之一,它提供了一套一致的API來訪問不同類型的地理空間數據。FDO類似於ODBC、DAO和ADO等資料庫訪問技術,但ODBC、DAO和ADO等技術用於訪問關係資料庫,而FDO用於訪問地理空間數據。AutoCAD Map 3D和MapGuide都使用了FDO技術訪問和管理地理空間數據,但是用戶也可以獨立於AutoCAD Map 3D和MapGuide之外,直接使用FDO。本書介紹了FDO的基本概念,如何使用FDO讀取、更新不同類型地理空間要素源的數據,可以說是目前為止最為詳盡的介紹FDO的資料。
儘管在進行AutoCAD Map 3D和MapGuide二次開發的時候,通常我們並不會直接使用FDO,但是它對我們理解AutoCAD Map 3D和MapGuide的許多概念和用法是非常有用的。建議大家在閱讀AutoCAD Map 3D和MapGuide相關章節之前不要跳過介紹FDO的章節,如果實在沒有時間,可以只閱讀章節2.1的內容。
MapGuide是一個用於在Web上快速、輕鬆、經濟高效地發布地圖和開發地圖套用的開源Web GIS平台,它支持Windows和Linux作業系統,Internet Explorer、FireFox等多種瀏覽器,集成了地理數據的顯示、查詢、分析等功能,提供了.NET、PHP、Java三種類型的Web API,非常易於進行二次開發。本書通過對MapGuide的體系結構、原始碼、API進行深入剖析,不僅可以讓讀者基於MapGuide進行二次開發,而且能夠對原始碼進行修改,從而貢獻於MapGuide開源社區。
AutoCAD Map 3D軟體是創建和管理空間數據的GIS平台,它在CAD和GIS之間架起了一座橋樑,使得工程和GIS工作人員可以使用相同的數據,而且可以將地理空間功能集成到同一環境中,從而最佳化設計流程。AutoCAD Map 3D和MapGuide的API共享了許多的接口和類,使用其中任意一種API開發的應用程式可以比較容易地移植到另一個平台上。本書介紹了AutoCAD Map 3D的架構、地理空間平台API,重點介紹了AutoCAD Map 3D地理空間平台API與 MapGuide Web API的不同之處。對於AutoCAD Map 3D和MapGuide API的共同之處,讀者可以參考MapGuide的相關章節。
根據不同的需求,讀者可以選擇閱讀不同的內容。如果只想了解FDO,那么只需要閱讀第2章;如果只想了解MapGuide的內容,那么只需要閱讀第2章到第17章;如果只想了解AutoCAD Map 3D的內容,那么只需要閱讀第2章、第7章、第8章、第9章、第10章和第18章。
在本書的編寫和出版過程中,得到了歐特克中國研究院(ACRD)院長黃健銘、歐特克中國研究院AEC部門總監Bruce Hwang和Ling Zhao、歐特克台灣區域經理Jim Huang,以及我的直接經理尹文義的大力支持,在此對他們的支持深表謝意。
由於編者水平有限,加之創作時間倉促,書中不足之處在所難免,歡迎廣大讀者批評指正。
李榮陸
2010年7月於上海
目 錄
第1章 Autodesk地理信息系統
產品簡介 1
1.1 基本概念 1
1.1.1 GIS數據類型 1
1.1.2 GIS數據源 4
1.2 Autodesk地理信息系統產品簡介 5
1.2.1 AutoCAD Map 3D 6
1.2.2 Autodesk MapGuide 7
1.2.3 Autodesk TopobaseTM 7
1.2.4 Autodesk LandXplorerTM 8
1.2.5 AutoCAD Raster Design 8
第2章 FDO 10
2.1 FDO概述 10
2.1.1 FDO的歷史 11
2.1.2 FDO的基本概念 12
2.1.3 FDO功能包 16
2.1.4 FDO Provider 16
2.2 FDO的記憶體管理機制 17
2.2.1 記憶體管理相關的宏 18
2.2.2 智慧型指針FdoPtr 18
2.3 FDO的異常處理機制 19
2.4 建立連線 22
2.4.1 數據源和Data Store 22
2.4.2 註冊Provider 22
2.4.3 建立連線 23
2.5 能力 27
2.5.1 連線能力 28
2.5.2 模式能力 29
2.5.3 命令能力 33
2.5.4 表達式能力 34
2.5.5 過濾器能力 35
2.5.6 幾何能力 36
2.5.7 柵格能力 37
2.6 模式管理 37
2.6.1 模式概述 37
2.6.2 模式的組成 38
2.6.3 模式的使用 38
2.6.4 FDO XML格式 41
2.6.5 GML模式檔案的創建 44
2.6.6 模式管理示例 51
2.6.7 類能力 57
2.7 管理空間上下文 58
2.8 模式覆蓋 60
2.8.1 模式覆蓋 60
2.8.2 ODBC Provider的模式覆蓋 61
2.8.3 Raster Provider的模式覆蓋 64
2.8.4 WMS Provider的模式覆蓋 66
2.9 管理Data Store 69
2.9.1 創建Data Store 69
2.9.2 枚舉Data Store 70
2.10 數據維護 71
2.10.1 屬性值 71
2.10.2 插入操作 73
2.10.3 更新屬性值 75
2.10.4 刪除要素 76
2.10.5 管理事務 77
2.11 查詢操作 78
2.11.1 查詢概述 78
2.11.2 查詢示例 80
2.12 執行SQL語句 83
2.13 長事務處理 84
2.13.1 長事務概述 84
2.13.2 支持的接口 84
2.14 處理柵格圖像 86
2.14.1 世界檔案 86
2.14.2 讀取柵格數據 87
第3章 MapGuide簡介 90
3.1 Web GIS 90
3.1.1 Web GIS的特點 90
3.1.2 Web GIS組件 91
3.2 MapGuide功能簡介 91
3.3 MapGuide的歷史 93
3.4 組件視圖 94
3.4.1 伺服器層組件 94
3.4.2 Web層組件 97
3.4.3 客戶端層組件 98
3.5 互動視圖 103
3.6 部署視圖 104
3.6.1 企業級環境的部署 104
3.6.2 開發環境的部署 105
3.7 安裝和配置MapGuide 105
3.7.1 安裝MapGuide伺服器 106
3.7.2 安裝Web擴展 106
3.7.3 驗證安裝 109
3.7.4 配置MapGuide 110
第4章 MapGuide快速入門 112
4.1 MapGuide API 112
4.1.1 伺服器端API 112
4.1.2 客戶端API 122
4.2 MapGuide開發流程 122
4.3 應用程式示例——你好,
4.3 MapGuide! 123
4.3.1 載入數據 124
4.3.2 創建圖層 126
4.3.3 創建地圖 127
4.3.4 創建網頁布局 127
4.3.5 創建MapGuide應用程式 130
4.3.6 總結 134
第5章 網頁布局 135
5.1 網頁布局簡介 135
5.1.1 MapGuide的兩種網頁布局 135
5.1.2 網頁布局的存儲 137
5.1.3 網頁布局和Viewer 138
5.2 基本網頁布局 139
5.2.1 基本網頁布局的用戶界面組件 139
5.2.2 命令 141
5.2.3 應用程式示例——
為應用程式添加幫助 142
5.2.4 框架 144
5.2.5 應用程式示例——在網頁中
嵌入一個基本網頁布局 147
5.2.6 Viewer API 148
5.2.7 應用程式示例——Hello Viewer 153
5.2.8 總結 154
5.3 靈活網頁布局 154
5.3.1 靈活網頁布局的用戶界面組件 155
5.3.2 Fusion——平台+外掛程式 156
5.3.3 操作示例——創建模板 168
5.3.4 Fusion API 172
5.4 靈活網頁布局應用程式示例 179
5.4.1 Hello World 180
5.4.2 創建一個Widget 180
5.4.3 選擇集 182
5.4.4 對話框和事件 183
第6章 站點和站點服務 188
6.1 配置站點 188
6.2 站點服務 190
6.2.1 創建到站點伺服器的連線 191
6.2.2 創建MapGuide提供的服務 191
6.2.3 創建MgSite對象實例 192
6.2.4 枚舉用戶、用戶組和角色 192
6.2.5 管理Session 193
第7章 空間參考系統 195
7.1 空間參考系統相關概念 195
7.1.1 坐標系的類型 196
7.1.2 橢球體和基準面 196
7.1.3 投影 197
7.1.4 空間參考系統的類型 198
7.1.5 高程參考 199
7.2 空間參考系統的表示 199
7.2.1 EPSG代碼 199
7.2.2 WKT 200
7.3 MapGuide空間參考系統API 204
7.3.1 CS-MAP和PROJ4 205
7.3.2 MapGuide支持的空間
參考系統類型 205
7.3.3 創建空間參考系統 206
7.3.4 空間參考系統表示
方式之間的轉換 207
7.3.5 獲取空間參考系的定義信息 207
7.3.6 坐標轉換 208
7.3.7 測量距離 210
7.3.8 計算方位角 211
7.3.9 定位新坐標 211
7.3.10 單位轉換 212
第8章 資源和資源服務 213
8.1 資源庫 213
8.1.1 Oracle Berkeley DB XML 213
8.1.2 資源庫的類型 214
8.1.3 備份和恢復資源庫 215
8.2 資源 217
8.2.1 資源ID 217
8.2.2 資源類型 218
8.2.3 載入過程 219
8.2.4 引用其他資源 219
8.2.5 資源標籤 220
8.2.6 資源包 221
8.3 資源服務 224
8.3.1 設定資源服務 224
8.3.2 獲取資源服務 225
8.3.3 頭 225
8.3.4 管理資源庫 226
8.3.5 管理資源 227
8.3.6 管理資源數據 234
8.3.7 管理資源包 236
第9章 地圖和圖層 237
9.1 地圖 237
9.1.1 比例尺 239
9.1.2 繪圖順序 239
9.1.3 圖層和圖層組 240
9.1.4 底圖和底圖圖層組 240
9.1.5 地圖圖例 240
9.2 圖層 241
9.2.1 圖層樣式 241
9.2.2 比例尺範圍 241
9.2.3 圖層的可見性 242
9.3 圖層定義 242
9.3.1 向量圖層定義 243
9.3.2 柵格圖層定義 256
9.3.3 製圖圖層定義 262
9.3.4 創建圖層定義 263
9.3.5 擴展圖層定義 267
9.4 操作地圖和圖層 267
9.4.1 遍歷地圖中的所有圖層 267
9.4.2 改變圖層的屬性 268
9.4.3 改變圖層的可見性 268
9.4.4 給地圖添加一個圖層 269
9.4.5 將圖層加入一個圖層組 270
9.4.6 調整圖層的繪圖順序 271
第10章 要素和要素服務 272
10.1 要素 272
10.1.1 AGF和WKB 272
10.1.2 AGF規範 272
10.1.3 AGF文本 276
10.1.4 幾何類型 278
10.1.5 空間關係 287
10.2 要素源 290
10.2.1 覆蓋坐標系 292
10.2.2 要素源擴展 293
10.3 要素模式 298
10.4 要素服務 299
10.4.1 要素服務的關鍵技術 299
10.4.2 設定要素服務 303
10.4.3 獲取要素服務 303
10.4.4 獲取要素源的能力 303
10.4.5 創建要素源 305
10.4.6 描述要素模式 307
10.4.7 描述空間上下文 310
10.4.8 查詢要素 313
10.4.9 修改要素 324
10.4.10 執行SQL語句 328
10.4.11 長事務 328
第11章 塊和分塊服務 332
11.1 塊 332
11.1.1 塊 332
11.1.2 底圖、底層和底層組 333
11.1.3 底圖比例尺 334
11.1.4 創建底圖 334
11.2 塊的快取位置 335
11.2.1 檔案基路徑 335
11.2.2 底圖比例尺索引 335
11.2.3 底層組 336
11.2.4 行 336
11.2.5 列 337
11.3 計算塊的坐標 337
11.4 分塊服務 338
11.4.1 設定分塊服務 338
11.4.2 獲取塊 339
11.4.3 獲取塊的大小 339
11.4.4 清除快取塊 340
第12章 渲染服務和地圖服務 341
12.1 渲染引擎 341
12.2 渲染服務 342
12.2.1 獲取渲染服務 343
12.2.2 渲染地圖 343
12.2.3 渲染動態圖層 345
12.2.4 查詢要素 347
12.2.5 其他功能 348
12.3 地圖服務 348
12.3.1 獲取地圖服務 349
12.3.2 創建EMap格式的
DWF檔案 349
12.3.3 創建EPlot格式的DWF檔案 350
12.3.4 列印布局 351
第13章 KML服務 354
13.1 KML 354
13.1.1 KML簡介 354
13.1.2 地標 355
13.1.3 地標中的描述性 HTML 356
13.1.4 地面疊加層 357
13.1.5 路徑 358
13.1.6 多邊形 359
13.1.7 幾何圖形樣式 360
13.1.8 網路連結 361
13.1.9 區域 361
13.2 KML服務 362
13.2.1 獲取KML服務 362
13.2.2 生成地圖的KML 362
13.2.3 生成圖層的KML 364
13.2.4 生成要素的KML 366
13.2.5 拉伸要素 367
第14章 MapGuide日誌 369
14.1 日誌 369
14.1.1 訪問日誌 369
14.1.2 錯誤日誌 369
14.1.3 跟蹤日誌 370
14.1.4 配置日誌內容 371
14.2 案例分析 372
14.2.1 調試要素服務 372
14.2.2 調試損壞的圖層 374
第15章 MapGuide和
OpenLayers 377
15.1 OpenLayers簡介 377
15.1.1 修改HTML 377
15.1.2 創建地圖 378
15.1.3 OpenLayers的語法 379
15.2 在MapGuide中集成OpenLayers 380
15.2.1 手動地集成商業地圖服務 380
15.2.2 使用MapGuide Studio集成
15.2.2 商業地圖服務 384
15.3 Fusion和OpenLayers 385
15.3.1 術語不一致引發的問題 385
15.3.2 事件機制的異同 387
15.3.3 其他改進 389
第16章 MapGuide最 佳實踐 391
16.1 最佳化配置和部署 391
16.1.1 分割MapGuide伺服器
16.1.1 和MapGuide Web擴展 391
16.1.2 創建多個站點 391
16.1.3 定期備份資源庫 393
16.1.4 最佳化Windows作業系統 393
16.2 最佳化Web套用伺服器 393
16.2.1 壓力測試 393
16.2.2 調整FCGI參數 393
16.3 最佳化地圖和圖層設定 394
16.3.1 按照比例尺設定圖層
16.3.1 的可見性 394
16.3.2 使圖層初始不可見 394
16.3.3 設定圖層不可選擇 395
16.3.4 不要使用PNG圖像格式 395
16.3.5 使用底層(Base Layer) 397
16.3.6 使用單個坐標系 397
16.3.7 使用過濾器和顯示規則 398
16.4 最佳化MapGuide服務 398
16.4.1 增加快取的大小 398
16.4.2 調節數據連線池 398
16.4.3 堵塞記憶體泄露 399
16.4.4 最佳化執行緒數 400
16.5 最佳化數據源 400
16.5.1 使用SDF檔案 400
16.5.2 採樣向量數據 401
16.5.3 避免使用連線和視圖 401
16.5.4 最佳化資料庫伺服器 401
16.5.5 管理大量原生模式
16.5.5 (Native Schema) 402
16.5.6 最佳化柵格數據 402
第17章MapGuide源碼分析 403
17.1 MapGuide開源版 403
17.1.1 訪問MapGuide原始碼 403
17.1.2 MapGuide原始碼結構 404
17.1.3 編譯MapGuide 405
17.1.4 MapGuide開源版的管理組織 406
17.1.5 MapGuide開源版的修改流程 406
17.2 MapGuide Web擴展和伺服器
17.2 源碼分析 408
17.2.1 MapGuide Web擴展源碼分析 408
17.2.2 MapGuide 伺服器源碼分析 414
17.2.3 總結 423
17.3 HTTP API 424
17.3.1 什麼是HTTP API 424
17.3.2 HTTP API和MapGuide
17.3.2 Web API的關係 425
17.3.3 使用HTTP API 425
17.4 Viwer源碼分析 427
17.4.1 利用模板實現支持多種語言
17.4.1 進行Web編程 427
17.4.2 國際化和本地化 430
17.5 MapGuide Web API 431
17.5.1 SWIG簡介 431
17.5.2 SWIG在MapGuide中
17.5.2 的套用 433
17.5.3 擴展MapGuide Web API 439
第18章 AutoCAD Map 3D
二次開發指南 441
18.1 AutoCAD Map 3D功能簡介 441
18.2 AutoCAD Map 3D的架構 445
18.2.1 塊實體 446
18.2.2 GWS 447
18.2.3 要素源、圖層和樣式渲染器 448
18.2.4 柵格圖層 449
18.3 AutoCAD Map 3D API 449
18.3.1 AutoLISP API 450
18.3.2 ActiveX API 450
18.3.3 ObjectARX API 450
18.3.4 數據連線API 451
18.3.5 地理空間平台API 451
18.3.6 工作流API 451
18.4 地理空間平台API 453
18.5 資源和資源服務 455
18.5.1 資源 455
18.5.2 資源服務 456
18.5.3 事件 457
18.5.4 創建資源 460
18.5.5 AutoCAD Map 3D和
18.5.5 MapGuide的資源服務差異 461
18.5.6 代碼示例 463
18.6 要素服務 464
18.6.1 要素服務 464
18.6.2 獲取FDO連線 464
18.6.3 事件 465
18.6.4 鎖定和解鎖要素 466
18.6.5 AutoCAD Map 3D和
18.6.5 MapGuide的要素服務差異 467
18.7 地圖和圖層 468
18.7.1 地圖和地圖管理服務 468
18.7.2 地圖和地圖管理服務 469
18.7.3 圖層和圖層組 470
18.7.4 編輯圖層要素 473
18.7.5 查詢圖層要素 476
18.7.6 圖層檔案 477
18.7.7 AutoCAD Map 3D和MapGuide
18.7.7 的地圖和圖層類差異 478
18.8 要素實體服務 478
18.8.1 選擇集 479
18.8.2 要素實體服務 480
18.9 應用程式示例 483
18.9.1 編譯和運行BuildMap
18.9.1 應用程式 483
18.9.2 創建AutoCAD Map 3D
18.9.1 應用程式 484
18.9.3 使用工具類 487
18.9.4 實現命令 496
索 引 499
參考文獻 503
聲 明 504