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的一個屬性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM