arcEngine開發之IMap、ILayer、IFeatureLayer和IFeatureClass關系
阿新 • • 發佈:2018-03-03
是什麽 gpo cmap arc arcmap mar tro 多圖 必須
剛開時學習 Engine 開發時,對於這幾個接口之間的關系總是理不清,因此寫下這篇文章做個總結。
是什麽
在 engine 開發中,我覺得使用過程中應該將每個接口對應到 ArcMap 中的具體事物中,這才能對它們有深刻的認識,那麽,這幾個接口代表的事物是什麽呢?
- IMap
這相對來說比較好理解,Map就是許多圖層的集合,就像 ArcMap 中的 MXD文檔一樣,可以包括許多圖層 Layer. - ILayer
Layer 是圖層對象,是數據的外殼,必須建立在數據的基礎上才有意義。在 ArcMap 中,它可以表示任何圖層,例如要素圖層( IFeatureLayer ),柵格圖層( IRasterLayer ),圖形圖層集合( ICompositeGraphicsLayer ) - IFeatureLayer
繼承自ILayer,提供了訪問基於矢量數據圖層的屬性和方法,圖層的數據可以是Geodatabase、Shapefile或Coverage數據。如果使用FeatureLayer組件類,還可以通過IGeoFeatureLayer接口獲得更多的屬性和方法。提供了控制要素圖層的屬性和方法,例如標記屬性( AnnotationProperties )、註記顯示設置( DisplayAnnotation ) - IFeatureClass
獲取和設置要素類屬性的主要接口。如獲取要素類的類型,得到滿足某個查詢條件的要素個數,或在要素類中創建一個新的功能。
關系
其中IMap是由多個ILayer構成的,而IFeatureLayer是ILayer的一個子類,IFeatureClass是IFeatureLayer的一個屬性。
arcEngine開發之IMap、ILayer、IFeatureLayer和IFeatureClass關系