1. 程式人生 > >arcEngine開發之IMap、ILayer、IFeatureLayer和IFeatureClass關系

arcEngine開發之IMap、ILayer、IFeatureLayer和IFeatureClass關系

是什麽 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關系