1. 程式人生 > >ArcGIS Engine 類庫介紹

ArcGIS Engine 類庫介紹

       ArcGIS Engine 可以供開發人員使用的物件有幾千個,這些物件分別位於各個不同的類庫中。這些物件之間存在著各種各樣的關係,例如:繼承,例項化等。

ArcGIS 提供了用來描述這些物件之間關係的物件模型圖,這些物件模型圖以UML 的形式來展現,以 pdf 文件的形式隨著 ArcGIS Engine 開發包安裝在本地目錄下面(例如:C:\Program Files\ArcGIS\DeveloperKit\Diagrams),每一個類庫對於一個 pdf 文件,我們可以通過閱讀這些 UML 模型圖來了解這些物件之間的關係。下圖是 UML 模型圖的圖例。

      

上圖中有三個類,這三個類分別屬於不同的型別:
AbstractClass——抽象類不能被例項化,也就是不能用 new 關鍵字去產生物件。抽象類的成員一般都是部分實現或者根本不實現。
CoClass——可以通過 new 關鍵字直接例項化物件。
Class——不能直接使用 new 關鍵字建立物件,但是可以通過藉助其它物件類建立例項。

類之間的關係有四種:
Inheritance——繼承;在圖中的空心三角箭頭表示是繼承關係。
Composition——組成;在圖中的菱形表示是組成關係。

Association——關聯;在圖中的線表示是關聯關係。
instantiation——例項化;在圖中的虛線箭頭表示是例項化關係。

ArcObjects 的類都實現了一個或多個介面,這些介面分兩種型別,一種是入介面(Inbound interface),另一種是出介面(Outbound Interface),分別用空心和實心圓來表示。入介面封裝了若干屬性和方法;出介面主要是封裝的事件,即物件支援哪些事件的觸發。

ArcGIS Engine 包含了三十多個類庫,這些類庫分別負責完成一部分 GIS的功能,例如:地圖顯示,幾何體操作,空間資料訪問等。下面介紹一下常用的類庫。
1、Carto
Carto 類庫中的物件負責建立地圖、顯示圖層。使用頻率比較高的IMap,ILayer, IFeatureRenderer 都在 Carto 類庫中,另外還包括地圖元素IElement 介面和子介面,例如:ILineElement,ITextElement 等。

2、Geodatabase
該類庫提供了統一的介面來訪問空間資料,使用頻率非常高的介面IFeatureClass, ITable,IQueryFilter 等介面都是位於該類庫中。使用者在開啟要素類、開啟表、查詢資料、讀取資料、更新資料時都需要引用此類庫。

3、Geometry
Geometry 類庫中提供了和向量的幾何體相關的物件,例如:點、線、面、三維模型等。向量資料由最小的單元點組成,每個點都有 x,y,z,m 四個座標值,z 表示高程,m 值表示測量值,一般用來儲存里程值。對幾何體的建立和修改,以及幾何體之間的空間分析都通過該類庫來實現。

4、DataSourcesFile
DataSourcesFile 類庫中提供了檔案型資料的訪問。基於檔案的資料來源有:shapefile, coverage,TIN,CAD 等。不同的資料來源通過各自的工作空間工廠來訪問。

5、DataSourcesGDB
DataSourcesGDB 類庫包含了對 Geodatabase 資料來源的訪問,這些資料來源包括:MS Access, File Geodatabase 和 ArcSDE 資料來源。在訪問空間資料之前首 先 確 定 數 據 源 的 類 型 , 如 果 是 Geodatabase , 那 麼 就 需 要 引 用DataSourcesGDB,如果是檔案型的資料來源,那麼就需要引用 DataSourcesFile。

6、DataSourcesRaster
DataSourcesRaster 類庫封裝了對柵格資料的訪問,DataSourcesFile 和DataSourcesGDB 類庫中封裝的資料訪問介面都是針對向量資料呼叫的,對於柵格資料的訪問需要使用 DataSourcesRaster 類庫,通過該類庫使用者可以各個ArcGIS 支援的柵格資料