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

剛開時學習 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的一個屬性。

這裏再增加一個 IFeature 接口,IFeature是 FeatureClass 的一部分,他們之間的關係就相當於 IRow 和 ITable之間的關係一樣。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章